我有類A,有更新B屬性的方法。所以,我需要繼承。C++繼承與組合一起使用
class B{
public:
int x;
};
class A : public B{
public:
void update(int y){
x = y;
}
};
我也想通過B類達到功能「更新」,所以我也需要組合。
class B{
public:
A a;
int x;
};
class A : public B{
public:
void update(int y){
x = y;
}
};
我希望我的結構正因爲如此,所以我想跟蹤對象類型B的性質是這樣的:
...
B.a.update(5);
int n = B.x;
然而,聲明類A之前,我不能用的組合物,且不能使用在聲明類B之前繼承。我該如何解決這個無限循環?
您的示例代碼將無法正常工作,您無法在B.a上調用函數update()並將其分配給int。你必須定義一個轉換運算符來做到這一點。 – bennofs
bennofs;對象「a」是類型「A」,有一個名爲update的方法,所以你可以做到這一點。 – baci
好的,你糾正了它 – bennofs