1. 程式人生 > >c++物件成員變數的構造和析構順序

c++物件成員變數的構造和析構順序

<span style="font-size:18px;">// HelloWorld.cpp : 定義控制檯應用程式的入口點。

//

#include "stdafx.h"
#include <iostream>
using namespace std;
class demo 
{
public:
	demo(){cout<<"無參建構函式"<<endl;};
	demo(int i){x=i;cout<<"有參建構函式"<<endl;}
	int get(){return x;}
	~demo(){cout<<"函式析構完畢"<<endl;}
private:
	int x;
};
class Human
{
public:
	Human(int i,int j,int k,int m):height(i),wid(j),d1(k),d2(m){cout<<"機器人制造完畢!\n效能為:"<<height*wid<<endl;cout<<"能耗為:"<<d1.get()*d2.get()<<endl; }
private:
	int height;
	int wid;
	demo d1;//上面d1,d2的構造順序是按照這裡成員變數的宣告順序,析構順序與宣告順序相反。
	demo d2;
};

int _tmain(int argc, _TCHAR* argv[])
{
	Human h(1,2,3,4);
	system("pause");
	return 0;
}</span>