C++类中const函数与非const函数的调用规则
2016-05-01 17:04
295 查看
class EX{ public: void constFunction() const; };
如上所示,通过将类成员函数声明为const,以表示这个函数不可以修改类对象。任何不可以修改数据成员的函数都应该声明为const,如果在编写const成员函数时,不慎修改了数据成员, 或者调用了其他的非const函数,则此时编译器会指出错误,这样做的函数是提高了程序的健壮性。
在相同的函数参数及相同的名字的情况下,const函数与非const函数可以构成重载函数,但是const成员函数不能改变任何的非静态变量
const函数与非const函数的调用规则
const对象默认调用const成员函数,非const对象默认调用非const成员函数;
若非const对象想调用const成员函数,则需要显示的转化,例如(const Student&)obj.getAge();
若const对象想调用非const成员函数,同理进行强制类型转换const_cast < Student&>(constObj).getAge();(注意constObj一定要加括号)
当类中只有一种函数存在的情况
- 非const对象可以调用const成员函数或者非const成员函数
- const对象只能调用const成员函数,若直接调用非const成员函数编译器会报错。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- php7 扩展类的写法[2]
- php7 类的方法传参[3]
- Mootools 1.2教程 函数
- autoit InputBox 函数
- 一个简单的asp数据库操作类
- 文件遍历排序函数
- C#实现用于操作wav声音文件的类实例
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- C#类的多态性详解
- ASP下经常用的字符串等函数参考资料
- 在线管理数据库 类
- PostgreSQL教程(五):函数和操作符详解(1)
- DOS批处理 函数定义与用法
- asp Chr 函数 数字转字母的方法
- Lua中的函数精讲笔记
- Lua中的闭合函数、非全局函数与函数的尾调用详解