C 操作符過載

2022-05-23 14:42:12 字數 1757 閱讀 8302

什麼是過載:讓操作符具有自己想要的功能。

#ifndef _array_h_

#define _array_h_

class

array

;#endif

array.h

#include "

iostream

"#include

"array.h

"using

namespace

std;

array::array(

intlength)

mlength =length;

mspace = new

int[mlength];

}array::array(

const array&obj)

}int

array::length()

void array::setdata(int index, int

value)

int array::getdata(int

index)

array::~array()

int& array::operator(int

i)array& array::operator=(array &aa)

this->mlength =aa.mlength;

mspace = new

int[mlength];

for(i=0; i)

return (*this);}

bool array::operator==(array &aa)

for(i=0; imlength; i++)

}return

true

;}

array.cpp

#include "

iostream

"#include

"array.h

"using

namespace

std;

intmain()

for(int i=0; i)

array a2 =a1;

array a3(

20);

a3 = a2; //

過載操作符= 功能二

for(int i=0; i)

a1[9] = 1000

;

if (a1==a2) //

過載操作符== 功能三

else

return0;

}

arraytext.cpp

過載操作符注意點:

1. 過載操作符有兩種方法:1> 用成員函式實現(大多數) 2> 用全域性函式(友元函式)實現:當無法獲取到呼叫這個操作符的物件的原始碼的時候,如:過載《操作符

//

友元函式實現左移操作符,列印物件

friend ostream &operator

<

2. 前置++(--)和後置++(--)注意點

//類成員函式實現前置++, 返回值為自身的引用

complex &operator++()

//類成員函式實現後置++, 返回值為區域性物件

complex operator++(int )

3.特別注意:過載=或者是等操作符時,返回的是引用,只有引用可以當左值。還需注意的是,呼叫者的原本的指標域是否是空,不為空則需釋放!

C 操作符過載

1.作為成員過載 class myclass public myclass operator const myclass d cons friend myclass operator const myclass a1,const myclass a2 關於返回值型別的討論 呼叫者堆疊裡返回乙個物件效...

C 過載操作符

過載操作符 一 過載操作符的定義 1.過載操作符的結構 返回型別 operator 需要過載的操作符 形參列表 注意 形引數目應和運算元數目相同。2.過載操作符的幾條注意事項 1 過載的操作符名不能通過連線其他合法符號來建立任何新的操作符。如 2 過載操作符必須具備至少乙個類型別或列舉型別的運算元。...

c 操作符過載

過載操作符 一 限制 1 不能增加新的操作符 2 有些操作符不能過載,如.物件中的訪問成員 作用域解析操作符 sizeof 三元操作符 3 不能改變操作符的元數,元數是指與操作符相關的引數或運算元個數。比如一元操作符 只能應用於乙個操作符 4 不能改變操作符的優先順序 5 不能重新定義內建型別的操作...