2023年3月5日全域性運算子

2021-10-21 13:33:32 字數 1209 閱讀 8342

node z1;

z1 =

2.2+ z1//這裡需要全域性操作符過載,

全域性操作符過載,需要去掉名字空間,並且在引數中按順序新增所有所需要的引數,例如

class

node

;node operator+(

double a,node z)

注意:操作符過載必須有乙個引數是類型別或者列舉型別,即操作符過載不可以實現兩個指標之間的操作,例如指標相加

cout是ostream型別,

注意:輸出操作符過載是全域性操作符過載

需要在類中新增宣告友元函式

cout是ostream類中已經定義好的物件例項,定義結束後使用的仍然是cout輸出

class

node

//cout << int;cout使用方法

ostream &

operator

<<

(ostream & mycout,node z)

//返回的也是ostream引用

//使用輸出操作符的過載,仍然是使用的cout,定義時的mycout只是形參,過載不影響其他函式的輸出

cout << z <<

1.3<<

1;

延申:&是引用

引用即別名,操縱引用物件可以直接修改原物件

引用物件在建立時必須賦初值

int a =10;

int& x = a;

//把int&看在一起,&出現在此屬於標記符

可以在函式中使用

void

swap

(int

&a,int

&b)//因為傳入引用值,可以實現a和b原值的改變,改變實參

cin運算過載和cout類似,但是cin是istream的物件例項,

class

node

istream&

operator

>>

(istream& mycin , node& z)

intmain()

在類的建構函式中傳參此類,要加引用

node

(node & z)

2023年3月5日開學有感

今日是回到學校第一天,獨自坐在些許涼氣的實驗室裡,不禁思緒萬千.小時候真傻,居然盼望著長大!我們在漸漸長大,父母在慢慢變老,對於我而言,社會無論多難 多複雜我並不十分在意,我可以接受自己苦一些,但是,我一想到父母臉上的皺紋 白頭髮變得越來越多起來,那種複雜的感受邊湧上心頭。如果早點工作賺錢 早點給父...

2023年3月8日模板等

模板相當於把函式的變數型別在編譯期間引數化,在編譯階段就已經決定mytype是什麼型別了 template class mytype mytype可以自己命名,經常命名為t mytype myabs mytype x else 例子 include using namespace std templ...

2023年3月20日學習總結

本週講解內容 本週老師還是繼續上一周的話題接著講貪心演算法,主要內容也沒什麼要闡述的,無非就是將乙個問題精簡為乙個最小問題,再找到這個最小問題的最優解,然後以此來找到整個問題的最優解。講了幾個常見情況,例如區間排程 活動安排 重疊區間 工廠利潤 質量合併 取規則下的最小數字等。我學到的 1 如果在排...