【发布时间】:2019-09-28 13:20:56
【问题描述】:
class a
{
public:
int var;
};
class b : a
{
};
int main()
{
a* p = new b();
return 0;
}
我知道它是由私有继承引起的,但我想知道为什么会这样?
【问题讨论】:
-
它这样做是因为标准是这么说的。
-
我认为我的问题被误解了,我不想访问类外的任何私有成员,或任何受保护的类层次结构外的成员,我只是想创建一个动态对象基类指针,它会引发错误
-
@AlexMercer - 没有被误解。虽然我不能代表其他人发言,但我可以说我对你的问题感到困惑的是你的问题是什么。该行为是预期的行为。该语言完全按照设计的方式运行。如果您对如何在语言框架内完成特定设计目标有疑问,而您所做的这种尝试不起作用,请提出该问题。事实上,没有人知道你在问什么问题。
标签: c++ class inheritance private-members