C 操作符過載 1 時間相加

2021-08-10 22:52:34 字數 1609 閱讀 5951

過載操作符的目的:的

c++中預定義的運算子的操作物件僅限於基本的內建資料型別

大多時候我們需要對我們的類似型別進行類似運算,這個時候我們需要對運算子進行重新定義,賦予其新內容

賦予其新的功能,以滿足自身的需求

運算子過載的實質就是函式過載或函式多型。運算子過載是一種形式的c++多型。目的在於讓人能夠用同名的函式來完成不同的基本操作。

基本格式如下:

《返回型別說明符》 operator 《運算子符號》(《參數列》)  

乙個使用案例如下:

我們通過構造乙個時間類 來實現時間與時間之間的相加,求出當前的時間

#include using namespace std;

class cmytime ;

我們可以實現乙個函式 通過乙個時間物件呼叫函式和另外乙個時間物件相加

cmytime* cmytime::sum(const cmytime *t) const
呼叫方式如下:

//用來相加的時間

cmytime* planningtime = new cmytime(); //預設時間

cmytime* coding = new cmytime(2, 40);

cmytime* fixing = new cmytime(5, 55);

planningtime->show();

coding->show();

fixing->show();

//時間總和

cmytime* total = new cmytime();

total = coding->sum(fixing); //相加函式的呼叫

cout << "after the sum: " << endl;

total->show();

在上面的例子中,時間物件coding通過呼叫自定義相加函式sum,將時間物件fixing與之相加

這樣使用會顯得有些繁瑣

我們可以通過過載操作符來實現相加

方法如下:首先對操作符進行過載 過載方法如下

cmytime cmytime::operator+(const cmytime t) const   

重點來了:我們可以使用類似於整數相加的方法 把兩個類物件進行相加

//時間總和:相加方式2

cmytime planning2;

cmytime coding2(2,40);

cmytime fixing2(5,55);

cmytime sumtime;

cout << endl << endl;

cout << "after the sum method 2: " << endl;

sumtime = coding2 + fixing2; //過載後的加號可以把兩個cmytime類物件直接相加

sumtime.show();

這是最簡單的乙個例子 之後會有更多的方法和例子介紹

C 操作符過載

1.作為成員過載 class myclass public myclass operator const myclass d cons friend myclass operator const myclass a1,const myclass a2 關於返回值型別的討論 呼叫者堆疊裡返回乙個物件效...

C 過載操作符

過載操作符 一 過載操作符的定義 1.過載操作符的結構 返回型別 operator 需要過載的操作符 形參列表 注意 形引數目應和運算元數目相同。2.過載操作符的幾條注意事項 1 過載的操作符名不能通過連線其他合法符號來建立任何新的操作符。如 2 過載操作符必須具備至少乙個類型別或列舉型別的運算元。...

c 操作符過載

過載操作符 一 限制 1 不能增加新的操作符 2 有些操作符不能過載,如.物件中的訪問成員 作用域解析操作符 sizeof 三元操作符 3 不能改變操作符的元數,元數是指與操作符相關的引數或運算元個數。比如一元操作符 只能應用於乙個操作符 4 不能改變操作符的優先順序 5 不能重新定義內建型別的操作...