我的班级看起来像这样
class A{
private:
int id;
public:
A();
int getId();
}
class B{
private:
public:
B();
}
实施
//constructor
B::B() : A(){
}
B扩展了A类。
好的,在我的主要cpp中我有这样的功能
bool checkID(B *obj){
if(obj->getId() > 1){ return true; } else { return false; }
}
但是,obj-> getId(),getId()表示无法访问。
为什么?
答案 0 :(得分:1)
默认情况下,C ++使用私有继承。使用B:public A公开继承A.还需要在声明中定义继承。
class B : public A {
public:
B();
}
答案 1 :(得分:0)
B必须从A派生才能从B对象访问A的成员。
class B : public A { ... };