备考2020年全国计算机二级考试的小伙伴们,复习的都怎么样了呢?树图网小编整理了2020年全国计算机二级C++复习知识点供大家参考复习,小伙伴们快来看看,测试一下自己吧!了解更多全国计算机二级考试敬请关注树图网计算机二级频道。
树图思维导图提供 2020年全国计算机二级C++复习知识点:对const修饰符的简单说明 在线思维导图免费制作,点击“编辑”按钮,可对 2020年全国计算机二级C++复习知识点:对const修饰符的简单说明 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:668e61133b1d3b732a4000b805b458e9
2020年全国计算机二级C++复习知识点:对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关键字。
树图思维导图提供 904名中国成年人第三磨牙相关知识、态度、行为和病史的横断面调查 在线思维导图免费制作,点击“编辑”按钮,可对 904名中国成年人第三磨牙相关知识、态度、行为和病史的横断面调查 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:10b9a8a2dd2fb4593f8130ef16c320fc
树图思维导图提供 销售经理半年规划 在线思维导图免费制作,点击“编辑”按钮,可对 销售经理半年规划 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:e614d6bcf03e9318109240a18697c5d1