다른 인스턴스라도 같은 클래스면 private 접근이 가능하다.

JellyPower·2023년 4월 15일
0

나만 몰랐던 C++

목록 보기
4/11
post-thumbnail
class MyClass {
	
public:
	void swap(MyClass& other) {
		other.privateVariable = 20; // 외부 인스턴스의 프라이빗 멤버에 접근 가능
	}

private:
	float privateVariable;

};
  • private의 기준점은 인스턴스 기준이 아니라 클래스 기준이다.
  • 그렇기에 똑같은 클래스라면 외부 인스턴스를 받아와도, 프라이빗 멤버에 접근이 가능하다.
  • 중요한건 이게 JAVA에서도, C#에서도 똑같이 작동한다.

💡 요약
1. 다른 인스턴스라도 같은 클래스면 private에 대해 접근이 가능하다.
2. 이건 C#, JAVA같은 메이저 객체지향 언어에서도 작동한다
3. C++의 관점에선 에선 다른 인스턴스라도 같은 클래스 타입이면 friend 클래스처럼 작동한다고 생각하자.

레퍼런스

[C++] 클래스의 private 접근지정자에 대한 고찰

profile
게임엔진코드싸개(진)

0개의 댓글