集合就是多個事物聚集在一起的總體,集合包括數組、結構體、類
對於內部類型數組,我們可以這樣定義
int a[5] = {1,2,3,4,5};
int b[5] = {0};
int c[] = {1,2,3,4,5};
對於一個結構體,我們也可以使用{}初始方式,如下
struct X
{
int i;
float f;
};
X x1 = {1,1.1};
X x2[3] = {{1,1.1},{2,2.2}}//第三個對象會初始化為0
但如果我們的類中有私有成員,或者所有的成員變量都是公有成員但存在有構造函數,我們就不能簡單的使用{}初始化方法了,所有的初始化工作必須通過構造函數完成
#include <iostream>
using namespace std;
class X
{
public:
int i;
float f;
X(){ cout << "默認構造函數" << endl; }
X(int e, float q):i(e), f(q) { cout << "構造函數" << endl; }
};
int main()
{
//X a = {0,0}; //編譯出錯,因為需要調用構造函數才能初始化
X b[2]; //使用默認構造函數進行初始化
X c[3] = {X(1,1.1), X(2,2.2)}; //使用一般構造函數進行初始化
return 1;
}
運行結果:
默認構造函數
默認構造函數
構造函數
構造函數
默認構造函數
通過辨識類和結構體的初始化方式的不同,可以認為類並不是一個嚴格意義上的集合
作者 yucan1001