放在函数后面的const是什么意思?


使用const关键字进行说明的成员函数,称为常成员函数。只有常成员函数才有资格操作常量或常对象,没有使用const关键字说明的成员函数不能用来操作常对象。常成员函数说明格式如下:  
   
          <类型说明符>   <函数名>   (<参数表>)   const;  
   
          其中,const是加在函数说明后面的类型修饰符,它是函数类型的一个组成部分,因此,在函数实现部分也要带const关键字。下面举一例子说明常成员函数的特征。  


例子:
class Coo
  {
   public:
   Coo() : a(0)
   {}
      int getA() const //常量成员函数
      {
           ++a;     //编译错误
           return this->a;
      }
    private:
   mutable int a;
  };

getA() 后面的 const 表明 getA()不会修改类的成员变量,
但也不能确定,可以用mutable改变这一限制.

讨论:

放在后面表示在类中只有const   对象才可以调用const成员函数.  
  ————————————————————  
  不是吧?非const对象一样可以调用const成员函数。const成员函数表示,这个函数不会修改类成员,除非成员加了修改mutable或者你在函数中主动使用了const_cast!它与普通成员函数就没有其他区别了。

放在后面表示在类中只有const   对象才可以调用const成员函数.  
  ————————————————————  
  其实相信你自己的意思是对的,但是表达有误。应该是:用const结尾的成员函数只能调用其他const结尾的成员函数。因为其他函数并不能保证同样不修改类的成员变量

  成员函数后加const,表示:类作者提示你,这个函数不会导致对象状态改变  
  可以理解为"表示这个函数不会修改任何成员变量"  
  但不可绝对化。其实,还是可以修改由mutable关键字修饰的成员变量的。  
   
  当同时有带   const   和不   带const   的版本时  
  常量对象(ie:   const   SomeClass   obj)   调用前者,非常量对象(SomeClass   obj)   使用后者。  

http://student.youkuaiyun.com/space.php?uid=112600&do=blog&id=17009

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值