定義乙個複數類complex,使之能用於複數的加法運算。編寫程式,求兩複試之和。
#ifndef complex_h_
#define complex_h_
class complex
;#endif
#include
#include
"complex.h"
complex::complex(){}
complex::complex(float r,float i):re(r),im(i){}
complex complex::sum(const complex z)const
void complex::show()const
//complie complex.cpp and usecomplex.cpp together
#include
#include "complex.h"
int main()
只要將sum()
的名稱改為operator+()
即可
呼叫時可以像呼叫sum()那樣:
total=z1.sum(z2);
也可以使用運算子表示法:
total=z1+z2;
此時運算子函式為類的成員函式
友元函式知識點複習:修改程式如下:1. 原型在類宣告中宣告,但它不是成員函式,不能用成員運算子呼叫
2. 雖然不是成員函式,但與成員函式訪問許可權相同
宣告
friend complex operator+(float r,float i);
定義(不用寫friend)
complex operator+(float r,float i){}
complex operator+(const complex &z01,const complex &z02)
過載為普通函式,就無法訪問private資料成員。
那麼就在public中增加set_re(),set_im(),get_re()和get_im()函式。
**如下:
#ifndef complex_h_
#define complex_h_
class complex
;complex operator+(const complex &z01,const complex &z02);//宣告返回component類的物件的普通函式
#endif
#include
#include "complex.h"
complex::complex(){}
complex::complex(float r,float i):re(r),im(i){}
void complex::set_re(float r)
void complex::set_im(float i)
float complex::get_re()const
float complex::get_im()const
void complex::show()const
complex operator+(const complex &z01,const complex &z02)
//complie complex.cpp and usecomplex.cpp together
#include
#include "complex.h"
int main()
運算子過載筆記
建立臨時物件 將自加後的物件賦給另乙個物件,我們需要建立乙個臨時物件,然後返回該物件 include using namespace std class num num int get const void set int x num operator private int n int main ...
運算子過載筆記
1.不能用友元過載的運算子 原因有2種說法 1 operator 時可以將友元函式宣告和類分開放,那麼在這個operator 函式之前的 遇到 號就是預設的 操作符,在operator 之後的 用的就是這個過載的operator 造成了混亂.2 作為成員函式過載時,呼叫物件就是第乙個引數,比如 作為...
c 學習筆記 運算子過載
今天在看使用ceres擬合函式 的時候看到了運算子過載,由於c 當時沒學好現在也忘得差不多了,所以打算開始做乙個c 的學習筆記,看到哪寫到哪。今天看到的這段 如下 template bool operator const t const abc,t residual const 操作符過載的格式是 ...