009.C++ const使用

1.引例

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;
    double im;

    friend complex& __doapl(complex*, const complex&);
};

2.const使用

类class里面的函数分两种:

  • 会改变数据 :不能加const;
  • 确定不会改变数据 :立马加const(强烈建议);

对于引例中的类,可能的调用方式:

//方式1:
{ complex c1(2,1);
cout << c1.real();
cout << c1.imag();}
//方式2:只有函数在对的位置加了const才支持
{ const complex c1(2,1);//将c1定义为常量
cout << c1.real();
cout << c1.imag();}

为什么强烈建议,对于不会改变数据的函数,立马加const?

因为类设计出来是要给人使用,要充分考虑使用者会怎么使用。上面的例子加了const,才支持方法2的调用,若没加const,则编译器报错。

参考资料:

1.www.geekband.com 侯捷C++基础课视频,B站

猜你喜欢

转载自www.cnblogs.com/paulprayer/p/10154984.html