c++——对象的构造顺序与对象的销毁

  

一。对象的构造顺序

  

<强>。对于局部对象——当程序执行流到达对象的定义语句时进行构造
程序示例

  
 <代码> # include
  使用名称空间性病;
  类测试
  {
  私人:
  int mi;
  公众:
  测试(int i)
  {
  mi=我;
  cout<& lt;“测试(int i)=" & lt; & lt; mi<& lt; endl;
  }
  测试(const Test&obj)
  {
  mi=obj.mi;
  cout<& lt;“测试(const Test&obj)”& lt; & lt; mi<& lt; endl;
  }
  };
  
  int main ()
  {
  int i=0;
  测试一个=我;
  而(i<3)
  {
  测试a1=+ + i;
  }
  如果(i<4)
  {
  测试a2=一个;
  }
  其他的
  {
  测试(100);
  }
  返回0;
  } 
  

运行结果如图所示
 c++——对象的构造顺序与对象的销毁”> <br/>由运行结果可以看的出,程序是按照程序流来实现的测试=我首先被构造,输出测试(int i)=0,测试a1=+ +我输出测试(int i)=1,测试(int i)=2,测试(int i)=3;测试a2=输出测试(const Test&obj)=0; <br/> <强> b对于堆对象</强> <br/> 1。当程序执行流到达新语句时创建对象<br/> 2。使用新的创建对象将自动触发构造函数的调用<br/>代码示例</p>
  <pre> <代码> # include<iostream>
  使用名称空间性病;
  类测试
  {
  私人:
  int mi;
  公众:
  测试(int i)
  {
  mi=我;
  cout<& lt;“测试(int i)=c++——对象的构造顺序与对象的销毁