C C ,運算子過載

2021-07-13 09:59:57 字數 975 閱讀 7421

編輯運算子過載原始檔overload.cpp

#include 

using

namespace

std;

class complex

complex(double r, double i)

complex operator +(complex &c2);

void display();

private:

double real;

double imag;

};complex complex::operator +(complex &c2)

void complex::display()

int main()

修改上述原始檔,將乙個常數和乙個複數相加:

#include 

using

namespace

std;

class complex

complex(double r, double i)

complex operator +(complex &c2);

void display();

private:

double real;

double imag;

};complex complex::operator +(complex &c2)

void complex::display()

int main()

根據上述編譯時提示的錯誤資訊可知:過載後運算子兩邊的資料型別應該一致。

c3 = 3 + c2;改為c3 = complex(3, 0) + c2;重新編譯執行得到以下結果:

C C 運算子過載的規則

本篇部落格講解 運算子過載的規則,以及例項 被過載的運算子必須是已經存在的c 運算子,不能過載自己建立的運算子。運算子被過載之後,原有功能仍然保留。只是擴充套件了原有功能。過載不能改變運算子運算物件的個數。運算子具有兩個運算元,在 運算子函式作為類 例如上個例子中的ctime 的成員函式的時候,有乙...

運算子過載之過載型別運算子

普通型別 類型別 呼叫對應的只有乙個引數 引數的型別就是這個普通型別 的建構函式 需求 boy boy1 10000 薪資 建構函式boy int boy boy2 rock 姓名 建構函式boy char 普通型別賦值給類型別其實很簡單,就是專門的對這個賦值的型別定義乙個建構函式。編譯器在執行 的...

運算子過載 賦值運算子的過載

有時候希望賦值運算子兩邊的型別可以不匹配,比如,把乙個int型別變數賦值給乙個complex物件,或把乙個 char 型別的字串賦值給乙個字串物件,此時就需要過載賦值運算子 注意 賦值運算子 只能過載為成員函式 賦值運算子過載例項示例 include include using namespace ...