神奇的c 等號過載

2021-06-07 22:15:27 字數 788 閱讀 2936

今天看effective c++ 說道等號過載的事,心裡一直有疑惑,這些運算子過載都是怎麼實現的。在學c++的時候只是草草的看過這部分內容,沒有真正自己使用過,對於等號如何操作私有成員一直有疑問,今天試了一下,哎,還真對得起咱這張臉。。。

#include class a

a(int v) : mval(v)

a(const a &obj)

~a(void){}

a& operator = (const a& r)

void equal(const a &r)

void set(int v)

int get(void)

private:

int mval;

};int main(void)

{ std::cout<。

事實上,複製建構函式也可以操作私有成員。。。。。

我弱爆了。。。

事實上,只要引數型別是自身的型別,就可以操作私有成員。。

下面是程式的輸出

hello assign operator

the value of obj1 is 1

the value of obj2 is 2

do assignment

the value of obj2 is 1

test copy constructor

the value of obj3 is 1

test equal method

the value of obj4 is 1

C 中的 , 等符號過載,以及過載等號操作

通過乙個實際的例子來介紹。其中過載 equal,gethashcode函式。以上就是介紹過載 equal,gethashcode的方法。但是有的時候我們需要過載 操作符,來方便我們進行傳遞,這在c 裡可以使用符號過載來實現,但是c 裡面就行不通了,不信你可以試試,編譯器會報錯的。c 裡實現相同效果使...

C 等號操作符過載錯誤

今天在幫同事看一段 時發現這麼乙個問題,雖然不大,但是困惑了不少時間,知道在csdn論壇上找到答案,特此記錄下來 但是,我今天碰到的問題就是,我實現了乙個等號操作符用來操作自定義類,編譯的時候,提示 void operator const a const a must be a nonstatic ...

等號操作符過載

當是涉及到深拷貝是,一種解決方式就是自己寫建構函式處理深拷貝,另一種方式就是等號操作符過載 等號操作符過載例項 define crt secure no warnings include using namespace std 單目運算子過載 class eqptor eqptor eqptor o...