日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

区分一下强制类型转换运算符重载/赋值运算符重载/对象定义的赋值

發(fā)布時間:2024/10/12 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 区分一下强制类型转换运算符重载/赋值运算符重载/对象定义的赋值 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ? ? 這三個名字可能很繞,看著也很不一樣,但其實是三個很容易混淆的概念,并且經(jīng)常在實際編程中遇到。這里拿出來比較一下。

?

????? 首先是強(qiáng)制類型轉(zhuǎn)換運算符的重載,作用是當(dāng)前對象向其他類型的轉(zhuǎn)換,常見的形式是

operator int(); Integer::operator int() {return x; }

????? 調(diào)用方式類似于

Integer c(10); int a=c;

????? 在函數(shù)調(diào)用的時候,類型轉(zhuǎn)換的重載也會被隱式調(diào)用,比如下面一種情況

void print(int n) {cout<<n<<endl; } Integer i(10); print(i);

????? 與之相對應(yīng)的是賦值運算符重載,賦值運算符是從別的類型轉(zhuǎn)換成當(dāng)前對象,常見的形式如下:

Integer operator=(int n); Integer Integer::operator=( int n ) {return Integer(n); }

?????? 調(diào)用方式類似于

Integer c; c=11;

?????? 最后是對象定義時的賦值,如果你定義了如下的一個構(gòu)造函數(shù)

Integer(int _x):x(_x){}

????? 那么你可以用這種方式定義一個對象

Integer c=11;

????? 需要特別區(qū)別的是,定義時的賦值是會不會調(diào)用賦值運算符重載的。另外,如果需要限制隱式類型轉(zhuǎn)換,可以使用explicit關(guān)鍵字,見參考文獻(xiàn)[1].

參考文獻(xiàn)

C++筆記(1)explicit構(gòu)造函數(shù)

http://www.cnblogs.com/cutepig/archive/2009/01/14/1375917.html

轉(zhuǎn)載于:https://www.cnblogs.com/sdqxcxh/archive/2012/05/08/2490973.html

總結(jié)

以上是生活随笔為你收集整理的区分一下强制类型转换运算符重载/赋值运算符重载/对象定义的赋值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。