程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 集合初始化需要注意的一個問題

集合初始化需要注意的一個問題

編輯:關於C語言

集合就是多個事物聚集在一起的總體,集合包括數組、結構體、類

對於內部類型數組,我們可以這樣定義

 

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved