分享

const修饰方法

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

如果我们定义一个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. };  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多