I have always been taught that in order to in-keep with encapsulation objects should be responsible for performing calculations on their own data.
So in this case here is this breaking rules of encapsulation and considered bad practice?
#include <iostream>
using namespace std;
const int SIZE = 10;
class safearay {
private:
int arr[SIZE];
public:
safearay() {
register int i;
for (i = 0; i < SIZE; i++) {
arr[i] = i;
}
}
int &operator[](int i) {
if (i > SIZE) {
cout << "Index out of bounds" << endl;
// return first element.
return arr[0];
}
return arr[i];
}
};
int main() {
safearay A;
cout << "Value of A[2] : " << A[2] << endl;
cout << "Value of A[5] : " << A[5] << endl;
cout << "Value of A[12] : " << A[12] << endl;
A[5] = 2; // Does this break Encapsulation??
cout << "Value of A[5] : " << A[5] << endl;
return 0;
}