不幸的是,我有一个基本的 C++ 问题让我感到困惑。最近我遇到了一篇文章,它使用向下转换来访问使用向下转换的类的私有成员。我的问题是它为什么有效?
鉴于我有一个父类 P 和一个类型为 dummy* 的私有成员 m_p ,那么使用的方法是创建一个 hack 类 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
任何帮助,将不胜感激。