我有一个类似这样的东西:
Class Base
{
public:
Base();
protected:
someType myObject;
}
Class Child:public someNamespace::Base
{
//constructor
Child(someType x):myObject(x){}
}
类Child和Base位于两个不同的命名空间中... 编译器报错,说我的Child类没有名为myObject的字段。
有人知道原因吗?是因为从Child构造函数填充Base成员是非法的吗?
谢谢
myObject
只在基类中访问,你也应该将其设置为private
。 - Christian Hacklprotected
,这样只有派生类才能调用它。 - Nick StrupatChild
构造函数更改为Child(someType x) : someNamespace::Base(x) {}
? - Cory Kramer