C++对象数组内的内嵌对象
时间: 2024-03-10 19:46:19 浏览: 89
在C++中,我们可以在类中定义内嵌对象,也可以在定义对象数组时包含内嵌对象。例如:
```c++
class InnerObject {
public:
InnerObject() {
std::cout << "InnerObject constructed!" << std::endl;
}
};
class Object {
private:
InnerObject inner_obj;
public:
Object() {
std::cout << "Object constructed!" << std::endl;
}
};
int main() {
Object obj_arr[3];
return 0;
}
```
在上面的代码中,我们定义了一个内嵌类 `InnerObject`,它被包含在了 `Object` 类中。然后我们定义了一个 `Object` 类型的对象数组 `obj_arr`,其中包含了三个 `Object` 对象。当我们运行这段代码时,会输出:
```
InnerObject constructed!
Object constructed!
InnerObject constructed!
Object constructed!
InnerObject constructed!
Object constructed!
```
可以看到,当我们定义对象数组时,会先构造内嵌对象,然后再构造对象数组中的每个对象。这是因为在定义对象数组时,编译器会先为每个对象分配内存空间,然后调用它们的构造函数来初始化它们。因此,如果一个类中包含内嵌对象,那么在定义对象数组时,内嵌对象会先于对象数组中的对象被构造。
阅读全文