求学快递网是国内领先的B2M2C教育培训网上信息平台!

首页 | 分站加盟 | 课程发布 | 最新课程 | 最新机构 | 培训专题 | 全国分站 | 帮助中心

计算机等级考试_计算机等级考试报名_计算机考试成绩查询_求学快递网

计算机等级考试一步到位
您的位置:求学快递网 > 计算机等级考试 > 考试辅导 > 计算机二级 > 计算机C++知识点:对const修饰符的简单说明 - 正文内容

计算机C++知识点:对const修饰符的简单说明

计算机C++知识点:对const修饰符的简单说明

 

求学快递网计算机等级考试专题重点推荐:2016年计算机级考试报考时间 2016年计算机二级考试证书领取时间2016年计算机二级考试报考指南2016年计算机二级考试大纲2016年计算机二级考试政策2016年计算机二级考试报考条件2016年计算机二级考试科目等最新新闻资讯。

 

      四、对const修饰符的简单说明 
  如果一个对象被声明为常量,那么该对象就不可以调用类当中任何非常量型的成员函数(除了被编译器隐式调用的构造函数和析构函数)。看下面的代码; 
   #include iostream.h 
   class Date 
   { 
   int month,day,year; 
   public: 
   Date(int m,d,y):month(m),day(d),year(y) {} 
   void display() 
   { 
   cout < }
   } 
   int main() 
   { 
   const Date dt(4,7,2004); 
   dt.display(); //error 
   return 0; 
   } 
  这个程序尽管编译时没有问题,但运行时却出错了。这是因为常量对象不能调用非常量函数。编译器只看函数的声明,而不在乎函数的具体实现。实际上函数的实现可以在程序中的任何地方,也可以是在另一个源代码文件中,这就超过了编译器的当前可见范围。 
   //date.h 
   class Date 
   { 
   int month,day,year; 
   public: 
   Date(int m,d,y); 
   void display(); 
   }; 
   //date.cpp 
   #include iostream.h 
   #include date.h 
   Date::Date(int m,d,y):month(m),day(d),year(y) {} 
   void Date::display() 
   { 
   cout < }
   //program.cpp 
   #include iostream.h 
   #include date.cpp 
   int main() 
   { 
   const Date dt(4,7,2004); 
   dt.display(); 
   return 0; 
   } 
  解决出错的问题有两个方法:第一是声明display()函数为常量型的 
   //in date.h 
   void display() const 
   //int date.cpp 
   void Date::display() const 
   { 
   cout < }
  另一个解决方式就是省略掉Date对象声明里的const修饰符。 
   Date dt(4,7,2004); 
  还有另一个容易出错的地方: 
   void abc(const Date & dt)
   { 
   dt.display(); //error 提示display没有const修饰符 
   } 
  函数abc()声明了一个Date对象的常量引用,这说明该函数不会修改传递进来的参数的值。如果Date::display()函数不是常量型的,那么在函数abc()里就不能调用它,因为编译器会认为Date::display()函数有可能会修改常量的值。 
  不论类对象是否是常量型的,它必须修改某个数据成员的值时,ANSI委员会设立了mutable关键字。

 

 

 

关注求学快递网计算机等级考试专题,帮你了解最新的2016年计算机二级考试资讯服务2016计算机二级考试成绩查询,让你轻松备考计算机等级考试!

求学快递网计算机等级考试专题的小编们根据网民搜索喜爱,第一时间公布2016年计算机二级模拟试题2016年计算机二级考试应试技巧计算机二级考试历年真题2016年计算机二级考试章节复习供广大求学爱好者学习使用,欢迎继续关注求学快递网计算机等级考试专题,并给我们提供宝贵的意见!

 

相关推荐

计算机等级考试最新机试技巧
计算机等级考试高效利用技巧

最新计算机资讯

热点专题

计算机等级考试经验技巧分享

关于本站  诚征英才  广告服务  招生服务  免责声明  分站加盟  VIP会员  联系我们  网站地图  网站记事

版权所有 CopyRight 2008-2017 粤ICP备14009694号 www.studyems.com, Inc. All Rights Reserved
违法和不良信息举报邮箱:2881796407@qq.com 举报电话: