第一種過載方式:
complex operator + (complex & c2)
complex c;
return c; //此處返回區域性變數c;
第二種過載方式:
complex & operetor + (complex)
this->i=this->i+c2.i;
this->j=this->i+c2.j;
return *this; //此處返回this
例項:#include
using namespace std;
class complex
complex(double i,double j)
void show()
/*complex & operator + (const complex &c2)
*/complex operator + (complex &c2)
};void f1()
int main()
farsight@ubuntu:~/shell$
farsight@ubuntu:~/shell$ ./a.out
this->i=3.3
this->j=7.7
farsight@ubuntu:~/shell$
例項2:
#include
using namespace std;
class complex
complex(double i,double j)
void show()
complex & operator + (const complex &c2)
/*complex operator + (complex &c2)
*/};void f1()
int main()
farsight@ubuntu:~/shell$ vi complex.cpp
farsight@ubuntu:~/shell$ vi complex.cpp
farsight@ubuntu:~/shell$ ./a.out
this->i=3.3
this->j=7.7
farsight@ubuntu:~/shell$
還有乙個疑問:
complex & operator+(complex &c2) 這種過載方式可以加拷貝建構函式,但是列印結果又錯。
#include
using namespace std;
class complex
complex(complex &zhang)
complex(double i,double j)
void show()
complex & operator + (const complex &c2)
/*complex operator + (complex &c2)
*/};void f1()
int main()
farsight@ubuntu:~/shell$
farsight@ubuntu:~/shell$ ./a.out
copy
this->i=-0.0982316 //結果有錯,不知道為什麼?
this->j=-3.46551e-42
farsight@ubuntu:~/shell$
operator運算子過載
運算子過載 一 作為類成員函式的過載 為了能進行類物件和乙個整型值的加法運算,需要寫乙個類的成員函式來過載雙目加法 運算子。該函式在類中的宣告如下 date operator int const 函式的宣告指出,返回值是乙個date類物件,函式名是運算子 只有乙個整型引數,而且函式是常量型的。當編譯...
運算子的過載 operator
一 運算子的過載 運算子過載,就是對已有的運算子重新進行定義,賦予其另一種功能,以適應不同的資料型別 在複雜資料型別中,編譯器不能識別運算子,如c 中,物件 物件,編譯器無法知道怎麼運算,所以就需要編寫函式,實現相應功能。不能過載的 運算子五個 szieof 二 自增運算子過載的實現 a a 1.類...
C 運算子過載 operator
您可以重定義或過載大部分 c 內建的運算子。這樣,您就能使用自定義型別的運算子。過載的運算子是帶有特殊名稱的函式,函式名是由關鍵字 operator 和其後要過載的運算子符號構成的。與其他函式一樣,過載運算子有乙個返回型別和乙個引數列表。box operator const box 宣告加法運算子用...