我的基类中有一个struct obj。我不知道如何通过Derv1类(从基类派生)访问结构的数据成员。我试图让Base和Derv1成为struct的朋友-它仍然告诉我“数据成员是私有的”(仅在Base中是私有的)。
示例:
struct A{
public :
int total;
//some stuff
};
class MyClass{ // [Base] class
private:
A var1;
};
class Derv1{
private:
//some stuff
public void display_var1(Derv1 x){
return x.var1.total;
} // trying to return the value of A.total
};
我希望这有道理,以便您可以帮助我。 谢谢,
答案 0 :(得分:0)
我认为您必须将Derv1类扩展为Base类:
class Derv1: public MyClass{
继承基类的成员
答案 1 :(得分:0)
首先,您必须确保Derv
源自MyClass
。
class Derv1 : public MyClass { ... };
然后,您将需要找出显示变量的最佳方法。
我的建议:
virtual
成员函数。
class MyClass { // [Base] class
public:
virtual void display() const
{
// Display var1 anyway you wish to.
}
private:
A var1;
};
class Derv1 : public MyClass {
public:
virtual void display() const
{
// Call the base class implementation first
MyClass::display():
// Display anything else that corresponds to this class
}
private:
//some stuff
};