結構體的運算子過載

2021-08-17 04:04:16 字數 2011 閱讀 4186

1、定義結構體

structcurrency

2、過載io輸出操作,在結構體內部將輸入操作的過載定義為友元函式過載

friendostream &operator<<(ostream &out,currency value);

在結構體外部進行具體定義

ostream& operator<<(ostream &out,currency value)

3、過載結構體的「=」操作符(在結構體內部)

currency& operator=(currency& value)

4、過載結構體的「+」操作符(在結構體內部)

currency& operator+(currency& value)

5、過載結構體的"-"操作符(在結構體內部)

currency &operator-(currency& value)

6、過載結構體的「*」操作符(在結構體內部)

currency& operator*(currency& value)

7、定義函式模板格式的輸出函式

template<typenamet>

voiddisplayvalue(t value)

附上完整程式**。。。

#include "stdafx.h"

#include

usingnamespacestd;

template<typenamet>

voiddisplayvalue(t value)

structcurrency

currency& operator+(currency& value)

currency &operator-(currency& value)

currency& operator*(currency& value)

friendostream &operator<<(ostream &out,currency value);

};

ostream& operator<<(ostream &out,currency value)

int_tmain(intargc, _tchar* argv)

結構體運算子過載

c 中,結構體是無法進行 這些操作的,這也帶來了很多不方便的地方,尤其是在使用stl容器的時候,如果我們可以往語句中傳入結構體,一些事情將會變得很簡單。比如二分查詢,binary crearch只能對陣列進行查詢,如果是結構體陣列的話,它會報錯。但很可惜,實際程式設計中,大部分時候操作物件是結構體陣...

結構體中運算子的過載

c 中,結構體是無法進行 這些操作的,這也帶來了很多不方便的地方,尤其是在使用stl容器的時候,如果我們可以往語句中傳入結構體,一些事情將會變得很簡單。比如二分查詢,binary crearch只能對陣列進行查詢,如果是結構體陣列的話,它會報錯。但很可惜,實際程式設計中,大部分時候操作物件是結構體陣...

優先佇列和結構體的運算子過載

自定義結構體是做題必須要學會的,而且經常需要用到自定義其排序規則。優先佇列也是,對於基本資料型別來說,不用自定義優先規則,但是對於自定義資料型別來說,確實是需要自己定義其內部的排序規則的。今天發現原來兩者的定義規則可以使用同一種方式來定義。struct node node int xx,int yy...