我有兩個基類--BaseA和BaseB以及派生類派生自BaseA和BaseB。多繼承C++ - 從派生類BaseA訪問BaseB變量
BaseB定義了一個變量int var(說)。 BaseA可以訪問變量var?我嘗試在BaseA中定義一個虛函數 - virtual int Variable()= 0,並定義int Variable(){return var; }在BaseB中。但這不起作用。
請告知什麼是達到此目的的最佳方法?
有許多派生類C具有不同的實現,我想避免在每個派生類中定義Set函數。
謝謝。
示例代碼 - http://ideone.com/hFjvua
#include <iostream>
using namespace std;
class A
{
public:
int Add(int x) { return Get() + x; }
virtual int Get() = 0;
};
class B
{
public:
int Get() {return a;}
protected:
int a;
};
class C : public A, public B
{
public:
void Set(int x) { a = x; }
//int Get() { return a; }
};
int main() {
C c;
c.Set(5);
std::cout << c.Add(3) << std::endl;
return 0;
}
1)不,'BaseA'將不能訪問'var',除非它的'static'或有一個'BaseB'指針 – yizzlez