在運算子過載中使用友元函式實現複數的四則運算
#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...