一.代码
class Base
{
public:
Base()
{
cout << "Base" << endl;
}
~Base()
{
cout << "~Base" << endl;
}
private:
char str[100];
};
void main()
{
cout << "..sss.." << endl;
Base b, *pa, d[1];
while (true);
}
执行结果:
二.结果分析
有执行结果可知,Base b, *pa, d[1]都不会触发析构函数产生结果,因为他们并没有delete空间,而Base b会去调用类Base的无参构造函数,Base *pa由于是指针,并没开辟内存,故而不会去调用类Base的无参构造;Base d[1]和int arr[1]其实一样的,就是定义了一个长度为1的Base类型的数组,故而他会调用一次Base的构造函数。
本文通过一个具体的C++代码示例,详细解析了类的构造函数和析构函数的工作原理。重点介绍了不同情况下构造函数的调用时机及析构函数的作用,帮助读者深入理解C++中对象生命周期管理。
2064

被折叠的 条评论
为什么被折叠?



