我有一個基本的C++問題,很不幸讓我困惑。最近我遇到了一篇文章,該文章使用向下轉換來訪問班級的私人成員。我的問題是爲什麼它的工作?訪問C++父類的私有成員
考慮到我有型虛擬的私有成員M_P *父P級則採用的方法是創建一個黑客類hackP如下:
class hackP: public P {
public:
dummy *m_p;
};
這顯然獲得了對class P
私有成員訪問m_p
使用類似
P parent = ...;
hackP *hp = (hackP*)&parent;
// access parent m_p as hp->m_p
任何幫助,將不勝感激。
嗯,m_p是公開的嗎?什麼是黑客? –
@MichaelDorgan:它在'hackP'中公開,但可能佔用與'P'中的私有相同的偏移量。這就是破解。 –
明白了。謝謝。 –