4x4 행렬 클래스로 예를 들면


class mat4x4

{

public:

    ...

    double& operator() (int i, int j) { return m[i][j]; }

    const double operator() (int i, int j) const { return m[i][j]; }

    ...


private:

    ...

    double m[4][4];

    ...
};


이러면 private의 의미가 없어지는거 아님? (m[i][j] 값이 바뀌는게 다른 변수들한테 영향을 안준다는 가정하에)

사용자가 () 연산자 써서 임의로 m[i][j]를 바꿀수 있는데...


내생각엔 public 변수로 둬도 될거같은데

인터넷에서 비슷한 코드 몇개 보니 멤버변수가 private에 들어있길래 궁금해서 물어봄