在C++中构造一个类对象的时候, 编译器会首先为该类对象分配存储空间然后调用该类的构造函数。下面我们看一个例子:
#include <stdio.h>
class BaseA
{
public:
BaseA()
{
printf("Call BaseA NoParamConstructor!\n");
}
BaseA(const BaseA& baseA)
{
printf("Call BaseA CopyConstructor!\n");
}
BaseA& operator= (const BaseA& baseA)
{
printf("Call BaseA Assign Operator!\n");
}
~BaseA()
{
printf("Call BaseA Destructor!\n");
}
private:
int baseI;
double baseD;
};
class BaseB
{
public:
BaseB()
{
printf("Call BaseB NoParamConstructor!\n");
}
BaseB(const BaseB& baseB)
{
printf("Call BaseB CopyConstructor!\n");
}
BaseB& operator= (const BaseB& baseB)
{
printf("Call BaseB Assign Operator!\n");
}
~BaseB()
{
printf("Call BaseB Destructor!\n");
}
private:
int baseI;
double baseD;
};
class BaseC
{
public:
BaseC()
{
printf("Call BaseC