C 過載 運算子的問題,c 運算子過載問題

時間 2021-08-13 22:26:36

1樓:匿名使用者

只拿了你有疑問的兩個函式出來討論,看是否明白

time time::operator++( ) //這是字首++,

return *this;

}time time::operator++(int) //這是字尾++

return temp;}

2樓:匿名使用者

time operator++( ); //這表示前++ 即:++time1 呼叫該函式

time operator++(int); //這表示後++ 即:time1++呼叫的是該函式

c++語法就是這邊規定的

if(++sec>=60) //請問這裡為什麼不是sec++>=60?不是當sec=59的時候,++sec就是60了嗎?然後59-60?

因為時間秒的範圍為:0-59,而不是1-60。也就是說:當sec為59時,下一秒就應該是0.

你用後++的話,if(sec++>=60)就為假,只有sec為60以後才為真:即sec這時範圍是:1-60

time temp(*this);//這裡也沒有搞明白,這個實參的作用?

這句就定義temp物件為當前物件的乙個副本唄

c++運算子過載問題

3樓:過去的日子

所謂過載,就是重新賦予新的含義。函式過載就是對乙個已有的函式賦予新的含義,使之實現新功能,因此,乙個函式名就可以用來代表不同功能的函式,也就是」一名多用」。

運算子也可以過載。實際上,我們已經在不知不覺之中使用了運算子過載。例如,大 家都已習慣於用加法運算子」+」對整數、單精度數和雙精度數進行加法運算,如5+8, 5.

8 +3.67等,其實計算機對整數、單精度數和雙精度數的加法操作過程是很不相同的, 但由於c++已經對運算子」+」進行了過載,所以就能適用於int, float, double型別的運算。

又如」<<「是c++的位運算中的位移運算子(左移),但在輸出操作中又是與流對 象cout 配合使用的流插入運算子,」>>「也是位移運算子(右移),但在輸入操作中又是與流物件 cin 配合使用的流提取運算子。這就是運算子過載(operator overloading)。c++系統對」<<「和」>>「進行了過載,使用者在不同的場合下使用它們時,作用是不同 的。

對」<<「和」>>「的過載處理是放在標頭檔案stream中的。因此,如果要在程式中用」<<「和」>>」作流插入運算子和流提取運算子,必須在本檔案模組中包含標頭檔案stream(當然還應當包括」using namespace std「)。

4樓:

#include

using namespace std;

class date ;

date::date()

date::date(const date& date)date::date(int year, int month, int day)

date date::operator+(int offset)ostream& operator<<

int main()

c 過載運算子的作用是什麼,C 中 運算子過載 到底有什麼何意義?

就是可以定義新的運算方法,比如虛數的 法,你定義2個虛數,直接用 是不行的,系統不認,你必須自己寫個過載,讓實部和實部相加,虛部和虛部相加,你先了解下什麼叫函式過載就能更好理解了。過載就是說你對系統給的不滿意,無法滿足你自己的需求,然後你寫個能滿足自己的需求代替系統的,當然只在這個類裡有效。就是用函...

C 運算子過載

問題出在 void operator string ob1 這一句,可以改成 void operator string ob1 原因在於 引數 string ob1 相當於是個臨時變數,他的值是,ob2的拷貝,但是它的生命週期在 以後就到頭了,也就是說就析構了。看你的string類裡有個 char ...

請C 高手幫忙編寫兩個關於過載運算子的程式

1.class complex complex friend const complex operator const complex c1,const complex c2 friend const complex operator const complex c1,const int c2 fr...