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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

vs2003 局部友元访问私有不可访问_C++ 类:重载运算符与友元

發(fā)布時間:2023/12/20 c/c++ 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vs2003 局部友元访问私有不可访问_C++ 类:重载运算符与友元 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

18.類中重載運(yùn)算符與友元

上次節(jié)中學(xué)習(xí)了如何在類中重新定義賦值(=)運(yùn)算符,實際上在一個自定義類中除了賦值(=)運(yùn)算符外,類的對象是不可以直接使用運(yùn)算符的,比如你在main函數(shù)中寫這樣的代碼會報錯:

如果想解決這些報錯問題,需要在類中重載這些運(yùn)算符。

18.1 重載

在表達(dá)式中使用

首先在類中聲明要重載的運(yùn)算符:< ,然后去函數(shù)中實現(xiàn)具體的比較規(guī)則。

聲明重載運(yùn)算符函數(shù)的代碼要求按照固定的格式:必須在運(yùn)算符

18.2 重載+運(yùn)算符

如同上面的

18.3 重載<>運(yùn)算符

之前我們可以使用C++ 的流提取運(yùn)算符 >> 和流插入運(yùn)算符 << 來輸入和輸出內(nèi)置的一些數(shù)據(jù)類型,實際上我們也可以重載流提取運(yùn)算符和流插入運(yùn)算符來操作自定義的數(shù)據(jù)類型。

在這里,有一點很重要,我們需要把運(yùn)算符重載函數(shù)聲明為類的友元函數(shù),這樣我們就能不用創(chuàng)建對象而直接調(diào)用函數(shù)了。

重載運(yùn)算符之后,在main函數(shù)中直接通過cout輸出對象的數(shù)據(jù),或cin輸入對象的數(shù)據(jù)。

18.4 友元函數(shù)

類的private的成員只有類的成員函數(shù)才有權(quán)直接訪問,外部函數(shù)無訪問權(quán)限。但是類中有一種特殊的函數(shù)——友元函數(shù),有權(quán)訪問類的所有私有(private)成員和保護(hù)(protected)成員。盡管友元函數(shù)在類的定義中出現(xiàn)過,但友元函數(shù)并不是類的成員函數(shù)。

如果要聲明一個函數(shù)為類的友元函數(shù),需要在類定義中使用關(guān)鍵字 friend,函數(shù)的參數(shù)必須有一個類對象參數(shù),因為只有通過對象才能訪問私有或保護(hù)的成員:

18.5 友元類

友元也可以是一個類,該類被稱為友元類。如果聲明一個類為友元,那整個友元類的所有成員都是這個類的友元。

如果要聲明友元類,需要在類定義中使用關(guān)鍵字 friend,如下所示:

友元類的任何成員函數(shù)都可以訪問類的成員。

總結(jié)

以上是生活随笔為你收集整理的vs2003 局部友元访问私有不可访问_C++ 类:重载运算符与友元的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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