知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
C++中的explicit作用
發(fā)表時(shí)間:2020-10-19
發(fā)布人:葵宇科技
瀏覽次數(shù):51
C++中, 一個(gè)參數(shù)的構(gòu)造函數(shù)(或者除了第一個(gè)參數(shù)外其余參數(shù)都有默認(rèn)值的多參構(gòu)造函數(shù)), 承擔(dān)了兩個(gè)角色。 1 是個(gè)構(gòu)造器 ,2 是個(gè)默認(rèn)且隱含的類型轉(zhuǎn)換操作符。
所以, 有時(shí)候在我們寫下如 AAA = XXX, 這樣的代碼, 且恰好XXX的類型正好是AAA單參數(shù)構(gòu)造器的參數(shù)類型, 這時(shí)候編譯器就自動(dòng)調(diào)用這個(gè)構(gòu)造器, 創(chuàng)建一個(gè)AAA的對(duì)象。
這樣看起來好象很酷, 很方便。 但在某些情況下(見下面權(quán)威的例子), 卻違背了我們(程序員)的本意。 這時(shí)候就要在這個(gè)構(gòu)造器前面加上explicit修飾, 指定這個(gè)構(gòu)造器只能被明確的調(diào)用/使用, 不能作為類型轉(zhuǎn)換操作符被隱含的使用。
explicit構(gòu)造函數(shù)是用來防止隱式轉(zhuǎn)換的。請(qǐng)看下面的代碼:
class Test1
{
public:
Test1(int n)
{
num=n;
}//普通構(gòu)造函數(shù)
private:
int num;
};
class Test2
{
public:
explicit Test2(int n)
{
num=n;
}//explicit(顯式)構(gòu)造函數(shù)
private:
int num;
};
int main()
{
Test1 t1=12;//隱式調(diào)用其構(gòu)造函數(shù),成功
Test2 t2=12;//編譯錯(cuò)誤,不能隱式調(diào)用其構(gòu)造函數(shù)
Test2 t2(12);//顯式調(diào)用成功
return 0;
}
普通構(gòu)造函數(shù)能夠被隱式調(diào)用。而explicit構(gòu)造函數(shù)只能被顯式調(diào)用。
相關(guān)案例查看更多
相關(guān)閱讀
- 小程序商城
- 河南小程序制作
- 報(bào)廢車拆解管理系統(tǒng)
- 汽車報(bào)廢拆解管理系統(tǒng)
- 網(wǎng)站建設(shè)首選公司
- 云南軟件開發(fā)
- 軟件定制
- 小程序密鑰
- 貴州小程序開發(fā)
- 云南軟件設(shè)計(jì)
- 前端
- web開發(fā)技術(shù)
- painter
- 昆明小程序設(shè)計(jì)
- 網(wǎng)站排名優(yōu)化
- 小程序開發(fā)課程
- 網(wǎng)頁制作
- 云南小程序被騙
- 報(bào)廢車回收
- 云南小程序哪家好
- 云南建設(shè)廳網(wǎng)站
- 小程序表單
- 網(wǎng)站優(yōu)化
- 云南etc微信小程序
- 開發(fā)微信小程序
- Web開發(fā)框架
- 小程序分銷商城
- 昆明軟件定制公司
- 云南網(wǎng)站建設(shè)優(yōu)化
- 云南網(wǎng)絡(luò)營銷顧問