1. 程式人生 > >C++陣列物件和建構函式

C++陣列物件和建構函式

定義陣列物件以後,對陣列中的物件初始化的方式分為兩種:

一種方式是在定義的時候用列表初始化

A a[5] = {A(1),A(2),A(3),A(4),A(5)};
一種方式是在定義了陣列物件以後,再使用臨時物件進行初始化
	A b[5];
	b[0] = A(1);
	b[1] = A(2);
	b[2] = A(3);
	b[3] = A(4);
	b[4] = A(5);

有趣的是,第一種方式不是使用了臨時物件,而是直接對陣列中的物件的資料對陣列元素進行初始化,第二種方式是先建立一個臨時物件,然後對陣列元素一一賦值。

通過建構函式和解構函式可以看出來:

#include<iostream>
using namespace std;
class A
{
	public:
		A(int n=0)
		{
			i = n;
			cout<<"================>constructor :"<<i<<endl;;
		}
		~A()
		{
			cout<<"================>destructor :"<<i<<endl;;
		}
	private:
		int i;
};
int main()
{
	cout<<"=============start test one=============="<<endl;
	A a[5] = {A(1),A(2),A(3),A(4),A(5)};
	cout<<"=============end test one================"<<endl<<endl;
	cout<<"============start test two================"<<endl;
	A b[5];
	b[0] = A(1);
	b[1] = A(2);
	b[2] = A(3);
	b[3] = A(4);
	b[4] = A(5);
	cout<<"==============end test two================="<<endl; 
	return 0;
}

輸出結果: