在運算子過載中使用友元函式

2021-06-22 10:17:22 字數 983 閱讀 2053

在運算子過載中使用友元函式實現複數的四則運算

#include using namespace std;

class complex

//使用初始化表初始化複數

complex(double r, double i):real(r),imag(i){}

friend complex operator+(complex &c1 , complex &c2);//複數的加法

friend complex operator-(complex &c1 , complex &c2);//複數的減法

friend complex operator*(complex &c1 , complex &c2);//複數的乘法

friend complex operator/(complex &c1 , complex &c2);//複數的除法

void display( );//顯示複數

private:

double real;//複數的實部

double imag;//複數的虛部

};//複數的加法

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

//複數的減法

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

//複數的乘法

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

//複數的除法

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

//顯示複數

void complex::display( )

{ cout<

執行結果:

運算子過載,什麼時候用友元?

過載ostream和istream運算子的時候,必須過載為友元,這是為什麼?什麼時候應該用友元函式?什麼時候用成員函式?有些操作必須是成員函式 比如建構函式,拷貝建構函式,析構函式以及虛函式 由於成員是區域性於類的,所以,這些函式還是優先被作為成員。由此可見,修改乙個類物件狀態的操作,應該或者是乙個...

使用友元函式來完成複數類的運算子過載

檔名稱 test.cpp 完成日期 2016年5月31日 版本號 v1.0 問題描述 使用友元函式代替成員函式來完成複數類的運算子過載 輸入描述 程式輸出 include using namespace std class complex complex double r,double i frie...

運算子過載,友元函式

運算子過載 include using namespace std class cint cint const cint timp public cint operator const cint timp const cint add const cint timp const cint add c...