可能重複:
What does a colon following a C++ constructor name do?結構構造函數語法
我發現下面的例子在線然而,對於構造函數的語法混淆了我一點點特別是:象徵。任何人都可以給我一個簡短的解釋嗎?謝謝。
struct TestStruct {
int id;
TestStruct() : id(42)
{
}
};
可能重複:
What does a colon following a C++ constructor name do?結構構造函數語法
我發現下面的例子在線然而,對於構造函數的語法混淆了我一點點特別是:象徵。任何人都可以給我一個簡短的解釋嗎?謝謝。
struct TestStruct {
int id;
TestStruct() : id(42)
{
}
};
構造函數初始化id
到42
當它被調用。它被稱爲initliazation列表。
在您的例子,你可以用一些成員做得一樣好它相當於
struct TestStruct {
int id;
TestStruct()
{
id = 42;
}
};
struct TestStruct {
int id;
double number;
TestStruct() : id(42), number(4.1)
{
}
};
它在構造函數中的唯一目的就是初始化成員變量
struct TestStruct {
int id;
double number;
TestStruct(int anInt, double aDouble) : id(anInt), number(aDouble) { }
};
是有用
「同樣的事情」是有點傲慢,也許是公平的誤導。 – 2012-02-05 00:20:18
同意,並編輯:) – Vache 2012-02-05 00:24:30
很酷,謝謝,但它不僅是「有用的」,但它必須非常必要的非必須初始化的變量,如基本子對象,常量或引用。 – 2012-02-05 00:25:42
這是一個構造函數初始化列表。您可以瞭解更多有關在這裏:?什麼是繼C++的構造函數名冒號做]
http://www.learncpp.com/cpp-tutorial/101-constructor-initialization-lists/
的可能重複(http://stackoverflow.com/questions/1272680/what-does-a -colon跟隨-AC-構造函數名稱-DO)。另請參閱重複列表[這裏](http://stackoverflow.com/questions/3504215/what-does-the-colon-mean-in-a-constructor) – 2012-02-05 00:18:48