C++中 explicit的用法

轉(zhuǎn)自 http://blog.csdn.net/acdnjjjdjkdckjj/article/details/5644573

explicit 是避免構(gòu)造函數(shù)的參數(shù)自動轉(zhuǎn)換為類對象的標(biāo)識符
[cpp] view plain copy

include <iostream>

using namespace std;

class A
{
public:

 explicit A(int a)  
{  
    cout<<"創(chuàng)建類成功了!"<<endl;  

  
}  

};
int main()
{

A a=10;  
return 0;  

}

上面的代碼編譯不成功掌唾,原因是當(dāng)顯式地定義了一個帶一個參數(shù)的構(gòu)造函數(shù)( 帶explicit)辉巡,必須要顯示地調(diào)用構(gòu)造函數(shù),
A a(10)警绩;
如果不加 explicit的話
A a=10;
實(shí)際的轉(zhuǎn)換過程如下:相當(dāng)于直接調(diào)用A(10);
(1)
explicit
此關(guān)鍵字只能對用戶自己定義的對象起作用,不對默認(rèn)構(gòu)造函數(shù)起作用此關(guān)鍵字只能夠修飾構(gòu)造函數(shù)说铃。而且構(gòu)造函數(shù)的參數(shù)只能有一個。嘹履。
(2)何時用explicit
當(dāng)我們不希望自動類型轉(zhuǎn)換的時候用腻扇,其實(shí)標(biāo)準(zhǔn)庫好多構(gòu)造函數(shù)都是explicit的
比如說vector <int> ivec(10); //這種定義看起來一目了然
不能寫成vector <int> ivec=10;//此種定義讓程序員感到疑惑
(3)何時不用explicit
當(dāng)我們需要隱式轉(zhuǎn)換的時候
比如說String類的一個構(gòu)造函數(shù)
String(const char*);

定義成這樣的好處,在需要隱式轉(zhuǎn)化的時候編譯器會自動地幫我們轉(zhuǎn)換砾嫉,標(biāo)準(zhǔn)庫里面的String就是一個好的證明幼苛。
具體來說:

我們可以這樣String str="helloworld";//直接調(diào)用構(gòu)造函數(shù)

String str="hello"+str+"world";

調(diào)用重載的+操作符號,此過程相當(dāng)于:String temp("hello"); //調(diào)用構(gòu)造函數(shù)
String str=temp+str;
String t("world");//調(diào)用構(gòu)造函數(shù)
String str=str+t;

明白隱式轉(zhuǎn)換在我們自己寫類的時候焕刮,尤其是些操縱內(nèi)存的類的時候很有用舶沿。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市配并,隨后出現(xiàn)的幾起案子括荡,更是在濱河造成了極大的恐慌,老刑警劉巖溉旋,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件畸冲,死亡現(xiàn)場離奇詭異,居然都是意外死亡低滩,警方通過查閱死者的電腦和手機(jī)召夹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門岩喷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恕沫,“玉大人,你說我怎么就攤上這事纱意∩羲荩” “怎么了?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長迄委。 經(jīng)常有香客問我褐筛,道長,這世上最難降的妖魔是什么叙身? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任渔扎,我火速辦了婚禮,結(jié)果婚禮上信轿,老公的妹妹穿的比我還像新娘晃痴。我一直安慰自己,他們只是感情好财忽,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布倘核。 她就那樣靜靜地躺著,像睡著了一般即彪。 火紅的嫁衣襯著肌膚如雪紧唱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天隶校,我揣著相機(jī)與錄音漏益,去河邊找鬼。 笑死深胳,一個胖子當(dāng)著我的面吹牛遭庶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播稠屠,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼峦睡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了权埠?” 一聲冷哼從身側(cè)響起榨了,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎攘蔽,沒想到半個月后龙屉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡满俗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年转捕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片唆垃。...
    茶點(diǎn)故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡五芝,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出辕万,到底是詐尸還是另有隱情枢步,我是刑警寧澤沉删,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站醉途,受9級特大地震影響矾瑰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜隘擎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一殴穴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧货葬,春花似錦推正、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至尼夺,卻和暖如春尊残,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背淤堵。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工寝衫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人拐邪。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓慰毅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親扎阶。 傳聞我的和親對象是個殘疾皇子汹胃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容