有没有办法在c++中创建一个类,它有一个类的对象,而这个类的对象又有一个类的对象
Is there some way to create a class that have an object of a class that have an object of this class in C++?
在c++中,是否有办法创建一个类,作为属性,一个类的对象,作为属性,第一个类的对象?
例如:
class A {
B attribute;
public:
A(){}
};
class B {
A attribute;
public:
B(){}
};
上面的代码无法编译。有没有类似的办法?
谢谢!
首先,您需要转发声明类B,否则编译器将不知道B是什么。此外,将属性更改为指针,否则您仍然会有编译器错误,即使您转发声明的B,它仍然不知道实现!
下面的代码可能有帮助,祝你好运…
class B;
class A {
B *attribute;
public:
A(){}
};
class B {
A *attribute;
public:
B(){}
};
这些定义本质上是递归的,即使您可以使用前向声明来使它们工作(但您不能)。A包含B, B包含A, A又包含B,以此类推。
您需要重新考虑您的结构。你试图定义一个包含另一个结构的结构,这个结构包含第一个结构它包含第二个结构,等等
相关文章:
- 我有一个对象,它将在整个程序的持续时间内实例化,但一个类成员不会,我应该动态分配它吗?
- 在 C++ 中声明 const 对象需要用户定义的默认构造函数.如果我有一个可变成员变量,为什么不呢?
- 有没有办法在同名类 (c++) 中为对象分配一个指针变量
- 我们可以有一个 setter 成员函数作为从 const 对象引用的 const 吗?
- C++是否有一个容器,每个类型最多存储一个对象
- Qt:在一个类中有一个QPainter对象的实例
- 如何让线程等待对象完全破坏?(对象也有一个线程)?
- 让一个名为A的类.传递以下两个对象有什么区别:(a)obj1和(b)obj1()
- 我有一个 Qt 对象的 2d 数组,我已经用值播种了这些对象。如何访问数组中特定对象的值并更改它们?
- 我在代码中有一个错误,错误是:(智能感知:不允许抽象类类型"HourlyWorker"的对象:)
- 类有一个自类型的对象
- 是否有一个函数可以显示我创建的类中的对象到 QTextBrowser 中?
- 在堆栈上有一个对象,而不是在函数的整个生命周期内
- 得到错误"left of '.toString' must have class/struct/union",即使 toString 应该有一个合适的对象
- 我有不同的类,我想用这些类中的对象制作一个向量,然后按值对其进行排序
- 你如何断言一个对象在c++中有一个特定的方法
- 有可能在同一个字符序列上有一个类似函数的宏和一个类似对象的宏吗
- C++如果我有一个对象指针,是在堆栈或堆上分配的方法变量
- 有没有一种方法可以为类的每个对象提供一个boost线程
- JsonCpp - 当有一个 json::Value 对象时,我怎么知道它的键名?