2014-12-02 103 views
1

B(int b=0):b(b){}在以下代碼中是怎麼意思的?「B(int b = 0):b(b){}」是什麼意思?

class B 
{ 
    int b; 
public: 
    B(int b=0):b(b){} 
}; 
+3

它定義爲類'B'一個構造函數,以一個可選的'int'參數(如果省略,則使用默認值「0」)。這個構造函數使用所述參數的值初始化名爲'b'的類的成員變量。 – 2014-12-02 06:16:48

+1

只需將這些術語與C++一起使用:構造函數,默認參數和初始值設定項列表。 – cmaster 2014-12-02 06:19:34

回答

2

這是一個空的構造函數定義。

class B 
{ 
    int b; 
public: 
    B (int b = 0) //Default initialize b to 0 
     : b(b) //Initialize member b to parameter b 
    { } //Empty constructor definition 
}; 

你可以寫,而不是構造

B (int b = 0) 
    : b(b) 
{ } 

也這樣:

B (int b = 0) 
{ 
    this->b = b; 
} 
+0

但這兩種方式不一樣(對於'const'和類類型的對象)。 – 0x499602D2 2014-12-02 14:32:04

+0

當然不是,但這裏的權利是'int b;' – Blacktempel 2014-12-03 06:20:12

相關問題