C++陣列物件和建構函式
阿新 • • 發佈:2019-01-05
定義陣列物件以後,對陣列中的物件初始化的方式分為兩種:
一種方式是在定義的時候用列表初始化
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; }
輸出結果: