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으로 지정되어있어도 접근이 가능하다...!