操作符過載

2021-07-11 03:28:17 字數 1417 閱讀 2240

操作符過載本質也就是函式呼叫而已!

#include 

#include 

using namespace std;

struct complex;/*

complex add(complex c1,complex c2)  

*/complex operator+(complex c1,complex c2)

int main(int argc, char *argv)

;complex c2;

//complex c=operator+(c1,c2);

complex c=c1+c2;

cout<<"c.a = "cout << "press the enter key to continue ...";

cin.get();

return exit_success;

}類的操作符過載

#include 

#include 

using namespace std;

class complex

friend complex operator+(const complex& c1,const complex& c2);

friend ostream& operator<<(ostream& out,const complex& c);

};//過載「+ 」 

complex operator+(const complex& c1,const complex& c2)  

//過載 "<<"

ostream& operator<<(ostream& out,const complex& c)  

int main(int argc, char *argv)

友元可以訪問private成員

成員函式過載只是需要右值作為運算元即可,因為預設左值是this指標

#include 

#include 

using namespace std;

class complex

complex operator+(const complex& c);

friend ostream& operator<<(ostream& out,const complex& c); };

//過載「+ 」 

complex complex::operator+(const complex& c2)  

//過載 "<<"

ostream& operator<<(ostream& out,const complex& c)  

int main(int argc, char *argv)

成員函式過載操作符比全域性操作符過載少乙個引數

當無法修改左運算元時只能使用全域性函式進行過載

=,,()和->操作符只能通過成員函式進行過載

操作符過載

ifndef vertex h define vertex h class vertex vertex float px float py float pz vertex operator const vertex p vertex operator const vertex p void oper...

操作符過載

1.操作符是靜態方法,返回值表示操作結果,引數是運算元。2.操作符過載需要在過載的操作符前加上operator關鍵字。3.最好少用操作符過載,只有在意義明晰而且與內建類的操作一致時才適合使用,以免造成混亂。以建立的分數類 fraction 中的 為例,該分數類中有兩個int型的私有屬性 分子 num...

過載操作符

1.過載操作符1.1 限制過載操作符具有以下限制 1 只有c 預定義的操作符集中的操作符才可以被過載 2 對於內建型別的操作符,它的預定義不能被改變,應不能為內建型別過載操作符,如,不能改變int型的操作符 的含義 3 也不能為內建的資料型別定義其它的操作符 4 只能過載類型別或列舉型別的操作符 5...