const修饰方法

const还可以用来修饰方法,不过const就不是像static那样放在函数的前面了,
因为放在前面的const已经有意义了,是指函数的返回值是const的。这样只能放在函数的最后了。
例如:

  1. int get( ) const;  

有什么作用呢。他的意思就是这个方法不能修改类成员变量的值。
例如

  1. class human  
  2. {  
  3. private:  
  4.     int m_gender;  
  5.     int m_age;  
  6. public:  
  7.     human():m_gender(0),m_age(0)  
  8.     {  
  9.     }  
  10.     int getAge1( ) const  
  11.     {  
  12.         m_age = 20;//错误,试图在const方法中修改类成员变量   
  13.          m_gender = 1;//错误,试图在const方法中修改类成员变量   
  14.          return m_age;  
  15.     }  
  16.     int getAge2( )  
  17.     {  
  18.         m_gender = 1;//正确   
  19.          m_age = 20;//正确   
  20.          return m_age;  
  21.     }  
  22. };  

如果我们定义一个const的human对象。那么我们使用这个const的对象的方法时只能使用被const修饰的

方法。

  1. const human a;  
  2. a.getAge1();//正确   
  3. a.getAge2();//错误  

有的同学有疑问了,如果类中有的值是需要在const时改变的怎么办。
C++此时又引入了一个很好的关键字mutable

  1. class human  
  2. {  
  3. private:  
  4.     int m_gender;  
  5.     mutable int m_age;  
  6. public:  
  7.     human():m_gender(0),m_age(0)  
  8.     {  
  9.     }  
  10.     int getAge1( ) const  
  11.     {  
  12.         m_age = 20;//正确。使用了mutable关键字   
  13.          m_gender = 1;//错误,试图在const方法中修改类成员变量   
  14.          return _age;  
  15.     }  
  16.     int getAge2( )  
  17.     {  
  18.         m_gender = 1;//正确   
  19.          m_age = 20;//正确   
  20.          return m_age;  
  21.     }  
  22. };  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值