불행히도 나를 당황하게하는 기본적인 C++ 질문이 있습니다. 최근에 다운 캐스팅을 사용하여 클래스의 개인 멤버에 액세스하기 위해 다운 캐스팅을 사용하는 기사를 보았습니다. 내 질문은 왜 작동합니까? 분명히 class P
private 멤버에 대한 액세스 권한을 얻는C++ 상위 클래스의 private 멤버에 액세스
class hackP: public P {
public:
dummy *m_p;
};
다음과 같이 내가 형 더미의 개인 회원 m_p *와 부모 클래스 P가 점을 감안
는 사용 방법은 해킹 클래스 hackP을 만드는 것이 었습니다 m_p
P parent = ...;
hackP *hp = (hackP*)&parent;
// access parent m_p as hp->m_p
과 같은 코드 스 니펫을 사용하면 도움이 될 것입니다.
음, m_p는 공개 되었습니까? 해킹이 뭐야? –
@MichaelDorgan : 그것은'hackP'에서 공개되었지만'P'에서 사적인 것과 같은 오프셋을 점유하고있는 것으로 추정됩니다. 그건 해킹입니다. –
알았습니다. 감사. –