運算子的過載

2021-09-11 21:36:29 字數 1186 閱讀 6087

#includeusing namespace std;

class int

public:

bool operator&(const int &i);

bool operator>(const int &i);

bool operator<(const int &i);

//........

int operator*(const int &i);

int operator/(const int &i);

int operator-(const int &i);

int operator*=(const int &i);

int operator/=(const int &i);

int operator-=(const int &i);

int operator+=(const int &i);

int operator+(const int &i)

public:

int& operator++()//++a前++過載

int operator++(int a)//a++ 這個引數名a 可寫也可不寫 後++過載

private:

int m_i;

};void main()

//在後++中要通過乙個臨時變數,因此前++效率高

/*void main()/*/

/*//運算子過載的一般格式:

//返回值型別 類名::operator過載的運算子(參數列)

////複數

class complex

complex(int real,int imag)

~complex()

{}public:

void printcomplex()const

{ cout<<"("《在運算子過載中,基本上我們所見過的運算子都可以過載,當然也有例外的五個:

1-?:(三目條件運算子) 2- . 和 .*成員操作符 3- ::作用域操作符 4-sizeof 型別字長操作符

這五種運算子在c++中不允許被過載。

過載運算子有以下幾種限制:

1-不可臆造新的運算子;

2-不能改變運算子原有的優先順序、結核性和語法結構,不能改變運算子運算元的個數;

3-運算子過載不宜使用過多;

4-過載運算子含義必須清除,不能有二義性。

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

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

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

下面介紹類的賦值運算子 1.c 中物件的記憶體分配方式 在c 中,物件的例項在編譯的時候,就需要為其分配記憶體大小,因此,系統都是在stack上為其分配記憶體的。這一點和c 完全不同!千 萬記住 在c 中,所有類都是reference type,要建立類的實體,必須通過new在heap上為其分配空間...

運算子過載限制 不能過載的運算子

1.過載後的運算子必須至少有乙個操作符是使用者定義的型別。2.使用運算子不能違反運算子原來的句法規則。3.不能新建運算子 4.不能過載 sizeof const cast,dynamic cast,reinterpret cast,static cast 5.只能通過成員函式過載的運算子 限制說明 ...