一篇文章帶你了解c++運(yùn)算符重載
友元函數(shù)
一種全局函數(shù),可以在類里聲明,其他地方定義。或者在類里定義生命。
但是這個(gè)友元函數(shù),不是類的成員。用的時(shí)候直接用,但是可以接觸類的所有權(quán)限的變量。
對(duì)于,重載操作符來(lái)說(shuō),可以把一些重載體函數(shù)定義為友元函數(shù)。
具體來(lái)說(shuō),如果進(jìn)行運(yùn)算的這兩個(gè)類,是對(duì)等的,沒(méi)有修改任一個(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)文章
VC程序在Win32環(huán)境下動(dòng)態(tài)鏈接庫(kù)(DLL)編程原理
這篇文章主要介紹了VC程序在Win32環(huán)境下動(dòng)態(tài)鏈接庫(kù)(DLL)編程原理,包括了dll文件的原理與具體實(shí)現(xiàn)過(guò)程,對(duì)于深入掌握VC程序設(shè)計(jì)具有很好的參考借鑒價(jià)值,需要的朋友可以參考下2014-10-10
C++動(dòng)態(tài)規(guī)劃算法實(shí)現(xiàn)矩陣鏈乘法
動(dòng)態(tài)規(guī)劃算法通常用于求解具有某種最優(yōu)性質(zhì)的問(wèn)題。在這類問(wèn)題中,可能會(huì)有許多可行解。每一個(gè)解都對(duì)應(yīng)于一個(gè)值,我們希望找到具有最優(yōu)值的解2022-06-06
標(biāo)準(zhǔn)CSV格式的介紹和分析以及解析算法實(shí)例詳解
這篇文章主要介紹了標(biāo)準(zhǔn)CSV格式的介紹和分析以及解析算法實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2016-12-12
C++可調(diào)用對(duì)象callable object深入分析
所謂的callable object,表示可以被某種方式調(diào)用其某些函數(shù)的對(duì)象。它可以是:一個(gè)函數(shù)、一個(gè)指向成員函數(shù)的指針、一個(gè)函數(shù)對(duì)象,該對(duì)象擁有operator()、一個(gè)lambda表達(dá)式,嚴(yán)格的說(shuō)它是一種函數(shù)對(duì)象2022-08-08
詳細(xì)聊聊c語(yǔ)言中的緩沖區(qū)問(wèn)題
緩沖區(qū)又稱為緩存,它是內(nèi)存空間的一部分,也就是說(shuō)在內(nèi)存空間中預(yù)留了一定的存儲(chǔ)空間,這些存儲(chǔ)空間用來(lái)緩沖輸入或輸出的數(shù)據(jù),這部分預(yù)留的空間就叫做緩沖區(qū),這篇文章主要給大家介紹了關(guān)于c語(yǔ)言中緩沖區(qū)問(wèn)題的相關(guān)資料,需要的朋友可以參考下2021-11-11
詳解c++中signal信號(hào)攜帶數(shù)據(jù)的接收與發(fā)送
這篇文章主要為大家詳細(xì)介紹了c++中signal信號(hào)攜帶數(shù)據(jù)的接收與發(fā)送的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01
C語(yǔ)言實(shí)現(xiàn)隨機(jī)發(fā)撲克牌
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)隨機(jī)發(fā)撲克牌,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04
Qt實(shí)現(xiàn)實(shí)時(shí)鼠標(biāo)繪制圖形
這篇文章主要介紹了Qt中QGraphicsView架構(gòu)下如何實(shí)現(xiàn)實(shí)時(shí)鼠標(biāo)繪制圖形,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起動(dòng)手試一試2022-02-02
C++實(shí)現(xiàn)數(shù)獨(dú)快速求解
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)數(shù)獨(dú)快速求解的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03

