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)却说可以改变,产生了矛盾!!!