求解下面程序的输出结果
#include <iostream>
#include <stdio.h>
class CMember
{
public:
CMember()
{
printf("I am member\n");
}
~CMember()
{
printf("member byebye\n");
}
};
class CBase
{
public:
CBase()
{
printf("I am base\n");
}
~CBase()
{
printf("base byebye\n");
}
};
class CSube : public CBase
{
public:
CSube()
{
printf("I am subye\n");
}
~CSube()
{
printf("subye byebye\n");
}
private:
CMember m_member;
};
int main()
{
CSube sub;
return 0;
}
输出结果:
分析:
使用构造函数时,先构造基类,然后构造私有成员,最后构造共有成员,析构时遵从后构造先析构!