一篇文章帶你了解c++運(yùn)算符重載
友元函數(shù)
一種全局函數(shù),可以在類里聲明,其他地方定義?;蛘咴陬惱锒x生命。
但是這個(gè)友元函數(shù),不是類的成員。用的時(shí)候直接用,但是可以接觸類的所有權(quán)限的變量。
對(duì)于,重載操作符來(lái)說(shuō),可以把一些重載體函數(shù)定義為友元函數(shù)。
具體來(lái)說(shuō),如果進(jìn)行運(yùn)算的這兩個(gè)類,是對(duì)等的,沒有修改任一個(gè)的值,那么,建議用友元。
如果,類似=,是賦值,對(duì)左邊的變量做修改了。那么這時(shí)候應(yīng)該重載為成員函數(shù)。
重載:復(fù)合賦值
Operator pairings
許多操作符是成對(duì)的,重載其中一個(gè)的時(shí)候,另一個(gè)相對(duì)應(yīng)的也應(yīng)該重載。
自增自減運(yùn)算符的重載
對(duì)于a++和++a,這兩個(gè)運(yùn)算符哪個(gè)在前,哪個(gè)后。函數(shù)是不一樣的
c++20,spaceship operator
就是只需要重載一個(gè),其他的就都能重載了。
#include <compare> // return type deduced as std::strong_ordering friend auto operator<=>(point p1, point p2) = default; int x_; int y_; 1 #include <iostream> 2 3 class point { 4 public: 5 point(int x, int y) 6 : x_{x} 7 , y_{y} {} 8 9 // hidden friend - preferred 10 11 12 13 private: 14 15 16 }; 17 18 auto main() -> int { 19 auto const p2 = point{1, 2}; 20 auto const p1 = point{1, 2}; 21 std::cout << "p1 == p2 " << (p1 == p2) << '\n'; 22 std::cout << "p1 != p2 " << (p1 != p2) << '\n'; 23 std::cout << "p1 < p2 " << (p1 < p2) << '\n'; 24 std::cout << "p1 > p2 " << (p1 > p2) << '\n'; 25 std::cout << "p1 <= p2 " << (p1 <= p2) << '\n'; 26 std::cout << "p1 >= p2 " << (p1 >= p2) << '\n'; 27 }
總結(jié)
本篇文章就到這里了,希望能給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C語(yǔ)言學(xué)習(xí)之柔性數(shù)組詳解
結(jié)構(gòu)體的最后一個(gè)元素允許是未知大小的數(shù)組,這就叫柔性數(shù)組。這篇文中主要為大家詳細(xì)介紹了C語(yǔ)言中柔性數(shù)組的相關(guān)知識(shí),需要的可以了解一下2023-03-03C語(yǔ)言數(shù)組按協(xié)議存儲(chǔ)與按協(xié)議解析數(shù)據(jù)的實(shí)現(xiàn)
今天小編就為大家分享一篇關(guān)于C語(yǔ)言數(shù)組按協(xié)議存儲(chǔ)與按協(xié)議解析數(shù)據(jù)的實(shí)現(xiàn),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12淺析string 與char* char[]之間的轉(zhuǎn)換
與char*不同的是,string不一定以NULL('\0')結(jié)束。string長(zhǎng)度可以根據(jù)length()得到,string可以根據(jù)下標(biāo)訪問。所以,不能將string直接賦值給char*2013-10-10C++實(shí)現(xiàn)獲取系統(tǒng)時(shí)間的方法小結(jié)
這篇文章主要為大家詳細(xì)介紹了使用C++實(shí)現(xiàn)獲取系統(tǒng)時(shí)間的一些常用方法,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以了解下2024-03-03C/C++ 中怎樣使用SetConsoleTextAttribute()函數(shù)來(lái)控制輸出字符的顏色
這篇文章主要介紹了C/C++ 中如何使用SetConsoleTextAttribute()函數(shù)來(lái)控制輸出字符的顏色,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03