Game Develop

[C++] 클래스의 멤버함수에서, 속한 클래스의 인스턴스에 대해선 private접근 가능하다. 본문

C++/C++

[C++] 클래스의 멤버함수에서, 속한 클래스의 인스턴스에 대해선 private접근 가능하다.

MaxLevel 2022. 9. 5. 03:44
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class A
{
private:
    int sum;
 
public:
    void Test();
};
 
void A::Test()
{
    A a;
    a.sum = 20;
 
    cout << "A의 멤버함수 Test가 호출됨." << endl;
}
 
int main() 
{
    A a;
    a.Test();
}
cs

 

위의 코드를 봐보자.

코드를 보니까 A::Test라는 함수에서 자신이 속한 클래스인 A라는 클래스의 인스턴스를 생성하고 멤버변수인 sum에 접근한다. 그런데 sum은 private으로 지정되어있는데..? 일단 컴파일에러는 안나지만 결과는 어떨까?

 

 

 

실패없이 잘 수행된다. 

결론은 클래스의 멤버함수에서 속한클래스의 인스턴스에 대해서는 private으로 지정되어있어도 접근이 가능하다...!