C++笔记(1)explicit构造函数
生活随笔
收集整理的這篇文章主要介紹了
C++笔记(1)explicit构造函数
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
From: http://www.cnblogs.com/cutepig/archive/2009/01/14/1375917.html
----------------------------------------------------------
explicit ? 只對(duì)構(gòu)造函數(shù)起作用,用來抑制隱式轉(zhuǎn)換。如: ?
? class ? A ? { ?
? ? ? ? ? A(int ? a); ?
? }; ?
? int ? Function(A ? a); ?
? ?
? 當(dāng)調(diào)用 ? Function(2) ? 的時(shí)候,2 ? 會(huì)隱式轉(zhuǎn)換為 ? A ? 類型。這種情況常常不是程序員想要的結(jié)果,所以,要避免之,就可以這樣寫: ?
? ?
? class ? A ? { ?
? ? ? ? ? explicit ? A(int ? a); ?
? }; ?
? int ? Function(A ? a); ?
? ?
? 這樣,當(dāng)調(diào)用 ? Function(2) ? 的時(shí)候,編譯器會(huì)給出錯(cuò)誤信息(除非 ? Function ? 有個(gè)以 ? int ? 為參數(shù)的重載形式),這就避免了在程序員毫不知情的情況下出現(xiàn)錯(cuò)誤。
總結(jié):explicit ? 只對(duì)構(gòu)造函數(shù)起作用,用來抑制隱式轉(zhuǎn)換。
參考:
http://blog.csdn.net/smilelance/archive/2007/03/14/1528737.aspx
http://topic.csdn.net/t/20040509/15/3046021.html
總結(jié)
以上是生活随笔為你收集整理的C++笔记(1)explicit构造函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高斯数学
- 下一篇: 【数学逻辑思维】A 好玩的数独游戏——0