类对象成员函数的const增强 C++语言的2.0版为const配置了若干新的应用,在C++的早期版本中,成员函数的调用可能改变const类对象的值。这肯定是个问题了。如果我们不允许使用const类的成员函数,我们还要const对象干什么用,为了让语言成为完备的,在2.0版本后引入了const成员函数,它的一个作用就是让const对象能够调用的成员函数。编译程序保证const成员函数不改变成员函数内使用的对象内部数据的值,而且还保证了const类的对象能够使用const类型的函数。下面我们来看一段代码: struct s{
}; void g()
} 如果我们把一些注释掉的语句恢复过来,我们会发现,这样的程序是不能通过编译的。因为它们不是试图调用const类型对象中的非const类型函数,就是在const类型成员函数中试图改变类成员数据的值。 |
相关文章
- 黑马程序员_Java基础_面向对象(概述、类与对象关系、成员变量、封装private、构造函数和构造代码块、this关键字)
- 调用C#类的成员函数的时候,编译器有没有插入this指针作为参数(如同C++一样)?
- 黑马程序员——JAVA基础_01(类和对象的关系、成员变量和局部变量、构造函数、构造代码块)
- Java基础05:面向对象;类与对象;匿名对象;成员变量;局部变量;封装;构造函数
- Java重修之路(六)面向对象初识,类与对象,成员变量,局部变量,封装,构造函数,构造代码块,this关键字
- 黑马程序员_Java基础_面向对象(概述、类与对象关系、成员变量、封装private、构造函数和构造代码块、this关键字)
- 初始化成员列表 ——— 类的const成员和引用成员的初始化
- 【Cocos2d-X开发学习笔记】第18期:动作类之改变动作对象、函数回调动作以及过程动作的使用
- 关于PHP面向对象中—类的定义与对象的实例化操作以及构造、析构函数的特殊用法
- [C++]类的空指针调用成员函数后,会发生什么事?