1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
classTest1 { public : Test1(intn){num=n;} //普通構造函數 private : intnum; }; classTest2 { public : explicitTest2(intn){num=n;} //explicit(顯式)構造函數 private : intnum; }; intmain() { Test1t1=12; //隱式調用其構造函數,成功 Test2t2=12; //編譯錯誤,不能隱式調用其構造函數 Test2t3(12); //顯式調用成功 return0; } |
C++中的explicit
C++中的explicit
這樣看起來好象很酷, 很方便。 但在某些情況下(見下面權威的例子), 卻違背了我們(程序員)的本意。 這時候就要在這個構造器前面加上explicit修飾, 指定這個構造器只能被明確的調用,使用, 不能作爲類型轉換操作符被隱含的使用。 呵呵,
看來還是光明正大些比較好。
explicit構造函數的作用
解析:
explicit構造函數是用來防止隱式轉換的。請看下面的代碼:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.