常成员函数

来源:互联网 发布:数码快照软件 编辑:程序博客网 时间:2024/04/30 13:14

常成员函数   
    

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

 

 #include  
  class   R  
  {  
  public:  
  R(int   r1,   int   r2)   {   R1=r1;   R2=r2;   }  
  void   print();  
  void   print()   const;  
  private:  
  int   R1,   R2;  
  };  
   
  void   R::print()  
  {  
  cout<<R1<<R2<<endl;  
  }  
   
  void   R::print()   const  
  {  
  cout<<R1<<R2<<endl;  
  }  
   
  void   main()  
  {  
  R   a(5,   4);  
  a.print();   //调用print();
  const   R   b(20,   52);  
  b.print();   //调用print() const;
  }  

 

该例子的输出结果为:  
   
    5,4  
    20;52   
    
 该程序的类声明了两个成员函数,其类型是不同的(其实就是重载成员函数)。有带const修饰符的成员函数处理const常量,这也体现出函数重载的特点。

 

const用在成员函数后   主要是针对类的const   对象  
  如:  
  class   Text{  
  public:  
          void   printconst(void)const{cout<<"hello"<<endl;}  
          void   print(void){cout<<"hello"<<endl;}  
  private:  
          int   k;  
  };  
  const   Text   a;  
  //上面定义了类Text的一常量对象  
  int   main(void)  
  {  
          a.printconst();   //ok  
          a.print();             //error      
          //上面a.print()调用是非法的  
          return   0;  
  }  
      const对象只能调用const成员函数。  
      const对象的值不能被修改,在const成员函数中修改const对象数据成员的值是语法错误  
      在const函数中调用非const成员函数是语法错误  

 

这是把整个函数修饰为const,意思是“函数体内不能对成员数据做任何改动”。如果你声明这个类的一个const实例,那么它就只能调用有const修饰的函数。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 父亲打母亲我该怎么办 父亲对母亲家暴怎么办 摊上家暴的父亲怎么办 家暴警察不处理怎么办 父亲把母亲打了怎么办 u盘的文件打不开怎么办 头撞墙起包了怎么办 儿童头撞墙起包怎么办 头撞墙了鼓包了怎么办 北京65岁老年证怎么办 怎么办65岁免费乘车卡 5个月小孩晚上哭怎么办 婴儿要含奶头睡怎么办 我把输入法删了怎么办 头发干枯毛躁怎么办用什么洗发水 落枕后脖子歪了怎么办 睡觉睡得脖子疼怎么办? 婴儿脖子睡歪了怎么办 怀孕8个月肚皮痒怎么办 怀孕大阴唇肿了怎么办 孕妇肚皮撑的疼怎么办 我大阴唇特别长怎么办 切完洋葱辣眼睛怎么办 下昆山车没刷卡怎么办 高德地图用不了怎么办 玩游戏老是闪退怎么办 苹果平板电脑闪退怎么办 钉钉忘记打卡了怎么办 钉钉手机号换了怎么办 玖富叮当贷逾期怎么办 玖富超能怎么办现金贷 包包的油边开裂怎么办 lv包包油边开裂怎么办 lv钱包油边开裂怎么办 德运奶粉没勺子怎么办 音响坏了没声音怎么办 6s蓝牙无法配对怎么办 魅族耳机进水了怎么办 苹果6耳机进水了怎么办 耳机内部线坏了怎么办 酷狗m1开不开机怎么办