C 編程習慣與編程要點
[導讀]以良好的方式編寫Cclass假設現(xiàn)在我們要實現(xiàn)一個復數(shù)類complex,在類的實現(xiàn)過程中探索良好的編程習慣。①Header(頭文件)中的防衛(wèi)式聲明complex.h:#ifndef__COMPLEX__#define__COMPLEX__classcomplex{}#endif防...
以良好的方式編寫C class
假設現(xiàn)在我們要實現(xiàn)一個復數(shù)類complex,在類的實現(xiàn)過程中探索良好的編程習慣。① Header(頭文件)中的防衛(wèi)式聲明
# define __COMPLEX__
class complex
{
}
# endif防止頭文件的內容被多次包含。② 把數(shù)據(jù)放在private聲明下,提供接口訪問數(shù)據(jù)# ifndef __COMPLEX__
# define __COMPLEX__
class complex
{
public:
double real() const {return re;}
double imag() const {return im;}
private:
doubel re,im;
}
# endif③ 不會改變類屬性(數(shù)據(jù)成員)的成員函數(shù),全部加上const聲明例如上面的成員函數(shù):double real () `const` {return re;}
double imag() `const` {return im;}既然函數(shù)不會改變對象,那么就如實說明,編譯器能幫你確保函數(shù)的const屬性,閱讀代碼的人也明確你的意圖。而且,const對象才可以調用這些函數(shù)——const對象不能夠調用非const成員函數(shù)。④ 使用構造函數(shù)初始值列表class complex
{
public:
complex(double r = 0, double i =0)
: re(r), im(i) { }
private:
doubel re,im;
}在初始值列表中,才是初始化。在構造函數(shù)體內的,叫做賦值。⑤如果可以,參數(shù)盡量使用reference to const為complex 類添加一個 =操作符:class complex
{
public:
complex
假設現(xiàn)在我們要實現(xiàn)一個復數(shù)類complex,在類的實現(xiàn)過程中探索良好的編程習慣。① Header(頭文件)中的防衛(wèi)式聲明
complex.h:# ifndef __COMPLEX__# define __COMPLEX__
class complex
{
}
# endif防止頭文件的內容被多次包含。② 把數(shù)據(jù)放在private聲明下,提供接口訪問數(shù)據(jù)# ifndef __COMPLEX__
# define __COMPLEX__
class complex
{
public:
double real() const {return re;}
double imag() const {return im;}
private:
doubel re,im;
}
# endif③ 不會改變類屬性(數(shù)據(jù)成員)的成員函數(shù),全部加上const聲明例如上面的成員函數(shù):double real () `const` {return re;}
double imag() `const` {return im;}既然函數(shù)不會改變對象,那么就如實說明,編譯器能幫你確保函數(shù)的const屬性,閱讀代碼的人也明確你的意圖。而且,const對象才可以調用這些函數(shù)——const對象不能夠調用非const成員函數(shù)。④ 使用構造函數(shù)初始值列表class complex
{
public:
complex(double r = 0, double i =0)
: re(r), im(i) { }
private:
doubel re,im;
}在初始值列表中,才是初始化。在構造函數(shù)體內的,叫做賦值。⑤如果可以,參數(shù)盡量使用reference to const為complex 類添加一個 =操作符:class complex
{
public:
complex





