C++--对象的构造顺序与对象的销毁

一.对象的构造顺序

A.对于局部对象 --当程序执行流到达对象的定义语句时进行构造
程序示例

#include
using namespace std;
class Test
{
    private:
        int mi;
    public:
        Test(int i)
        {
            mi=i;
            cout<<"Test(int i)="<

运行结果如图所示

由运行结果可以看出,程序是按照程序流来实现的Test a=i首先被构造,输出Test(int i)=0,Test a1=++i输出Test(int i)=1,Test(int i)=2,Test(int i)=3;Test a2=a输出Test(const Test& obj)=0;
B.对于堆对象
1.当程序执行流到达new语句时创建对象
2.使用new创建对象将自动触发构造函数的调用
代码示例

#include
using namespace std;
class Test
{
    private:
        int mi;
    public:
        Test(int i)
        {
            mi=i;
            cout<<"Test(int i)="<

运行结果

运行结果如图所示,使用~ClassName之后对构造函数进行了析构,并销毁

小结
1.局部对象的构造顺序依赖于程序的执行流
2.堆对象的构造顺序依赖于new的使用顺序
3.全局对象的构造顺序是不确定的
4.析构函数时对象销毁时进行清理的特殊函数
5.析构函数在对象销毁时自动被调用
6.析构函数是对象释放系统资源的保障

转载于:https://blog.51cto.com/13475106/2397937

你可能感兴趣的:(C++--对象的构造顺序与对象的销毁)