msc*_*msc 1 c++ constructor destructor
我在研究C++
概念.我在构造函数和Destractor概念中感到困惑.编译器在退出程序时将隐式调用析构函数.但在我的程序中,只有构造函数调用.
#include <iostream>
using namespace std;
class A
{
int i;
public:
A()
{
cout<<"Constructor call"<<endl;
}
~A()
{
cout<<"Destructtor call"<<endl;
}
};
int main()
{
A *a = new A();
}
Run Code Online (Sandbox Code Playgroud)
输出:
Constructor call
Run Code Online (Sandbox Code Playgroud)
所以,我有一个问题:为什么析构函数在退出程序时不会被编译器隐式调用?
为什么析构函数在退出程序时不会被编译器隐式调用?
因为动态分配的对象不会自动销毁.这就是指定语言的方式.跟踪动态对象的销毁将需要运行时/内存开销.
解决方案:不要泄漏动态分配的对象.
归档时间: |
|
查看次数: |
260 次 |
最近记录: |