如果将该类的对象声明为另一个类的实例变量,则调用类的构造函数吗?

时间:2012-04-17 16:38:08

标签: c++

例如,如果我有这样的课程;

#import "B.h"
class A
{
    B object;
};

当我创建A对象时会调用B的构造函数吗?

4 个答案:

答案 0 :(得分:3)

是的,将调用默认构造函数(如果存在),或者如果B没有默认构造函数,则会触发编译器错误。

答案 1 :(得分:2)

是。测试它的一种方法是在构造函数中放置一些简单的cout调用来观察构造函数调用的发生。

答案 2 :(得分:0)

是的,按照包含类的声明顺序调用成员构造函数。

答案 3 :(得分:0)

应该提到的是,这条规则适用于两种方式,调用类'A的析构函数调用其成员的默认析构函数。