TreeMind树图在线AI思维导图
当前位置:树图思维导图模板资格考试计算机2020年全国计算机二级C++复习知识点:对const修饰符的简单说明思维导图

2020年全国计算机二级C++复习知识点:对const修饰符的简单说明思维导图

  收藏
  分享
会员免费下载30积分
会员免费使用30积分
余生愿你常欢笑 浏览量:12023-04-10 17:04:55
已被使用0次
查看详情2020年全国计算机二级C++复习知识点:对const修饰符的简单说明思维导图

备考2020年全国计算机二级考试的小伙伴们,复习的都怎么样了呢?树图网小编整理了2020年全国计算机二级C++复习知识点供大家参考复习,小伙伴们快来看看,测试一下自己吧!了解更多全国计算机二级考试敬请关注树图网计算机二级频道。

树图思维导图提供 2020年全国计算机二级C++复习知识点:对const修饰符的简单说明 在线思维导图免费制作,点击“编辑”按钮,可对 2020年全国计算机二级C++复习知识点:对const修饰符的简单说明  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:668e61133b1d3b732a4000b805b458e9

思维导图大纲

2020年全国计算机二级C++复习知识点:对const修饰符的简单说明思维导图模板大纲

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关键字。

相关思维导图模板

第一课:中华文明的起源    与早期国家思维导图

树图思维导图提供 第一课:中华文明的起源 与早期国家 在线思维导图免费制作,点击“编辑”按钮,可对 第一课:中华文明的起源 与早期国家  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:efdfe5558ecedb1fc5d9c14488c5187f

计算机系统维护方法思维导图

树图思维导图提供 计算机系统维护方法 在线思维导图免费制作,点击“编辑”按钮,可对 计算机系统维护方法  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:bd7f9468d710b62afe9e296eebea668c