一、筆記
1.C++程式設計簡介

2.頭檔案與類的聲明
防衛式聲明
#ifndef __COMPLEX__
#define __COMPLEX__
……
#endif
頭檔案的布局
模闆簡介
template<typename T>
3.構造函數
inline函數:函數若在class body内定義完成,便自動成為inline候選人
通路級别:
public private
被外部通路的函數設為public
構造函數
complex (doble r=0,double i=0)
:re(r),im(i)
{ }
先初始化,後指派
這種寫法效率高
構造函數可以有很多個——重載
單例模式,構造函數放在private裡,不允許外部創
4.參數傳遞與傳回值
在函數後頭加const
double real () const{return re;}
參數傳遞: pass by value vs. pass by reference(to const)
參數盡量傳引用,如果不希望對方改加const
内化成習慣
傳回值傳遞:return by value vs. return by reference(to const)
傳回值也盡量傳引用
friend(友元)
自由取得friend的private成員
相同class的各個objects互為friends(友元)
class body外的各種定義
什麼情況可以傳和傳回引用,什麼情況不可以:
兩個參數相加,得到一個新的結果時不能傳引用
5.操作符重載與臨時對象
操作符重載之一,成員函數
操作符重載之二,非成員函數
臨時對象
重載<<
二、代碼
1.complex.h
2.complex_test.cpp