我有类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