10 2 運算子過載函式作為類成員函式和友元函式

2022-08-02 05:12:09 字數 747 閱讀 4192

complex operator+(complex &c2) 

//+是雙目運算子,函式過載中只有乙個引數,實際上運算子過載函式有兩個引數,是由於過載函式是complex類中的成員函式,有乙個引數是隱含的,運算子函式是用this

//指標隱士的訪問物件成員函式。

complex operator+(complex *this,complex &c2)

//運算子過載函式可以作為類的成員函式,還可以作為非成員函式。例:

#includeusing namespace std;

class complex

complex(int r,int i)

void display();

friend complex operator+(complex &c1,complex &c2);//將運算子在complex類中的成員函式 改為類的友元函式,應同時將運算子函式引數改為兩個因為,this隱試指標只對類的成員函式有作用

private:

int real;

int imag;};

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

//complex 保證返回值型別和該物件型別一致

void complex::display()

{ cout<<"("、new、delete )必須定義為類的成員函式,有的運算子則不能定義為類的成員函式(如流插入「<<」和流提取運算子「>>」、型別轉換運算子)。

運算子過載函式作為類成員函式和友元函式

運算子過載函式既可以做為類成員函式也可以過載為友元函式,但使用定義方法和使用上是由較大差別的。首先看乙個運算子過載函式作為類成員函式的示例 定義complex為複數類,過載運算子 實現複數的相加。程式1.1 include using namespace std class complex comp...

運算子過載 成員函式

檔名稱 test.cpp 完成日期 2016年5月14日 問題描述 請用類的成員函式,定義複數類過載運算子 使之能用於複數的加減乘 include using namespace std class complex complex double r,double i complex operator...

C 運算子過載函式之成員運算子過載函式

5.2.3 成員運算子過載函式 在c 中可以把運算子過載函式定義為某個類的成員函式,稱之為成員運算子過載函式。1.定義成員運算子過載函式的語法形式 1 在類的內部,定義成員運算子過載函式的格式如下 函式型別 operator 運算子 形參表 2 成員運算子過載函式也可以在類中宣告成員函式的原型,在類...