[英]accessing data member through composition
我的基類中有一個 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
};
我希望這是有道理的,以便您可以幫助我......謝謝你,
我認為您必須將您的 Derv1 類擴展到 Base 類中:
class Derv1: public MyClass{
繼承基類的成員
首先,您必須確保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
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.