//+加號操作符過載
#include
using namespace std;
class complex
void printcomplex()
//friend complex operator+(complex &c1,complex &c2);
//寫為成員函式
complex operator+(complex &another)
private:
int a;//實數
int b;//虛數
};#if 0
//操作符過載寫在全域性
// operator+ 中間不能有空格,這倆構成乙個函式名
complex operator+(complex &c1,complex &c2)
#endif
int main()
#include
using
namespace
std;
class complex
void printcomplex()
//friend complex & operator++(complex &c);
//friend const complex operator++(complex &c1,int);
//寫到區域性
complex & operator++()//自己調自己,不用傳參
const complex operator++(int)//使用佔位符(亞元)
private:
int a;//實數
int b;//虛數
};#if 0
//寫在全域性
//過載的是前++
//要遵循前++規則:先加後用,可以當左值
complex & operator++(complex &c)
//過載的是後++運算子
//要遵循後++規則:先用後加,且不能當左值(加const修飾)
const complex operator++(complex &c1,int)//使用佔位符(亞元),形成過載
//「<>」操作符過載只能寫在全域性,不能寫在成員方法中,否則呼叫的順序會變反:c1
<
#endif
private:
int a;
int b;
};#if 1
//《過載只能寫在全域性
ostream & operator
<
#endif
//同樣》過載只能寫在全域性
istream & operator>>(istream & is,complex &c)
int main()
operator操作符, 中間不能有空格,如operator+,這倆構成乙個函式名。
在引數不能形成差別產生過載時,可以使用佔位符(亞元),形成過載。
「<>」操作符過載只能寫在全域性,不能寫在成員方法中,否則呼叫的順序會變反。
在這裡補一下++i與i++的知識:
如果只是看i++和++i,這兩個是等價的,都等同於i=i+1,都是變數自身加1。
前++規則:先加後用,可以當左值。
後++規則:先用後加,且不能當左值
在程式開發中,++i 與 i++的區別在**?
(1)如果只是看i++和++i,這兩個是等價的,都等同於i=i+1,都是變數自身加1。
(2)在一般情況下,它們都是跟賦值聯絡在一起。
比如:
int a;
a=i++;//將i的值賦值給a,即a=i;然後再執行i=i+1;
也就是【a=i++;】與【a=i; i=i+1;】等價。
a=++i;//將i+1的值賦給a,即a=i+1;然後再執行i=i+1;
也就是【a=++i;】與【a=i+1;i=i+1;】等價。
(3)【總結一下】
①前++是將自身加1的值賦值給新變數,同時自身也加1;
②後++是將自身的值賦給新變數,然後才自身加1.
(4)++i可以作為左值,i++ 不能作為左值。
操作符過載
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...