本文共 1286 字,大约阅读时间需要 4 分钟。
A.对于局部对象 --当程序执行流到达对象的定义语句时进行构造
程序示例#includeusing namespace std;class Test{ private: int mi; public: Test(int i) { mi=i; cout<<"Test(int i)="< <
运行结果如图所示
#includeusing namespace std;class Test{ private: int mi; public: Test(int i) { mi=i; cout<<"Test(int i)="< <
运行结果如图所示
1.一般而言,需要要销毁的对象都应该做清理
2.解决方案a.为每个类提供一个public的free函数b.对象不在需要时立即调用free函数进行清理析构函数
C++的类中可以定义一个特殊的清理函数1.这个特殊的清理函数叫做析构函数2.析构函数的功能与构造函数相反定义:~ClassName()1.析构函数没有参数也没有返回值类型声明2.析构函数在对象销毁时自动被调用代码示例#includeusing namespace std;class Test{ int mi;public: Test(int i) { mi = i; cout<<"Test()"<
运行结果
小结
1.局部对象的构造顺序依赖于程序的执行流2.堆对象的构造顺序依赖于new的使用顺序3.全局对象的构造顺序是不确定的4.析构函数时对象销毁时进行清理的特殊函数5.析构函数在对象销毁时自动被调用6.析构函数是对象释放系统资源的保障转载于:https://blog.51cto.com/13475106/2397937