我不知道這段代碼是怎麼回事。這是來自我必須瞭解的一段代碼。這段C++代碼是怎麼回事? (Resolution operator with inheritance?!?)
orange::orange():
hello_short(false),
hello_long(false),
foo(NULL),
foo2(NULL),
quiet(false)
{
res = NULL;
good = true;
}
我不知道這段代碼是怎麼回事。這是來自我必須瞭解的一段代碼。這段C++代碼是怎麼回事? (Resolution operator with inheritance?!?)
orange::orange():
hello_short(false),
hello_long(false),
foo(NULL),
foo2(NULL),
quiet(false)
{
res = NULL;
good = true;
}
orange::orange():
simplies說,你所定義的類橙色(左部)的功能,該功能被稱爲「橙」(右部)和不帶任何參數。由於該功能被命名爲相同類和沒有返回值,這是aconstructor類
剩下的就是一個初始化列表:http://www.cprogramming.com/tutorial/initialization-lists-c++.html
它初始化與給定值的類成員(hello_short
將false
,hello_long
將是false
,foo
將是NULL
等),將res
設置爲NULL
並將good
設置爲true
。
初始化列表總是在執行構造函數(即花括號內的代碼)之前完成。
此外,還有一個語法錯誤:在foo2(NULL)
之後,應該出現逗號。
對於構造函數名稱後的奇怪冒號,請參見[本FAQ文章條目](http://stackoverflow.com/questions/1711990/what-is-this-weird-colon-member-syntax-in-the-constructor )。 – sbi 2012-01-18 19:03:57