class complex
{
public:
complex (double r = 0, double i = 0)
: re (r), im (i) // 初始化進階用法
{ }
complex& operator += (const complex&);
double real () const { return re; }
double imag () const { return im; }
private:
double re, im;
friend complex& __doapl (complex*, const complex&);
};
什麼時候用const 呢?
例如:
double real () const { return re; }
double imag () const { return im; }
class 裡面的函數會分:
- 會改變資料内容
- 不會改變資料内容
不會改變内容的,馬上可以加上const!!!
注意事項:
{
complex c1(2,1);
cout<<c1.real();
cout<<c1.imag();
}
// 可以!!!
{
const complex c1(2,1);
cout<<c1.real();
cout<<c1.imag();
}
// 不一定可以!!!
為什麼下面不一定可以呢?!!!
當上面class沒有加const的時候,會報錯!!!
因為const complex c1(2,1); 說不可以改變,而class裡面函數real、imag(沒加const)卻說可以改變,産生了沖突!!!