const用法
来源:互联网 发布:新的网络安全法 编辑:程序博客网 时间:2024/06/06 08:42
第一:对于变量定义的使用
常变量:即变量值不能被修改,即使指针指向该常量也不能通过指针修改其值。
常指针:即指针本身不能被修改,但指针所指向的数据可以被修改。
定义方法:const在号左边的表示常变量,在*号右边的表示常指针。例如:
char *p;//非常变量,非常指针const char *p;//常变量,非常指针char * const p;//非常变量,常指针//const char * const p;//常变量,常指针
第二:函数返回值为const作用
可以降低用户错误的调用而造成的意外,又不至于放弃安全性和高效性,即这类函数的返回值不能当成左值使用,只能当成右值使用。例如:
class Rational{...};const Rational opreator *(const Rational &lhs,const Rational &rhs){ return lhs * rhs;}Rational a,b,c;(a*b)=c;//这就会导致编译错误,可能就是程序员误操作形成的,保证安全性if((a*b)=c)//本来该写成==,可以用于检测
第三:参数列表为const
作用是防止函数内部对其const变量进行修改。
第四:函数后面加const修饰
作用:这种函数称为const成员函数,用于类中的成员函数。表明这个函数不能对这个类对象的数据成员(准确地说是非静态数据成员)作任何改变。 不能修改类中的数据成员,只能读取类中的成员数据,不能在函数中调用其他不是const的函数,但是可以改变在函数内部定义的变量值。如果在函数内部调用了非const的函数,非const的函数是允许修改类的成员数据的,这就矛盾了,编译会错误。
第五:在const函数中修改类的成员数据条件
如果非要在const中修改类的成员数据,方法是在类的成员数据的声明前添加mutable关键字
class A{mutable std::size_t length;//这个成员变量可以总是被更改,即使在const成员函数内};
第六:对象与成员函数之间的调用关系
对一般情况下,通常修改对象的构造函数和析构函数而言,它们不允许被声明成const。使用方法如下:
(1)非常量对象调用非常量成员函数 (正确)
(2)非常量对象调用常量成员函数 (正确)
(3)常量对象调用常量成员函数 (正确)
(4)常量对象调用非常量成员函数 (错误)
尽管构造函数必须是非常量成员函数,但它仍然可用于初始化常量对象。
- const用法
- const用法
- const用法
- const用法
- const用法
- const 用法
- const用法
- const 用法
- const用法
- const用法
- const用法
- const用法
- const用法
- const用法
- CONST用法
- const用法
- const用法
- const用法
- Lightoj1109——False Ordering(简单数学)
- Runtime详解
- OpenCV学习资料收集!
- LeetCode 107. Binary Tree Level Order Traversal II
- C++英文面试常见问题
- const用法
- 杭电1874-畅通工程续
- Activiti 流程部署方式 activi 动态部署(高级源码篇)
- tools:context=".MainActivity"
- 有关jquery与DOM节点操作方法和属性记录
- 手动崩溃统计
- 虫洞_poj3259_bellman_ford
- Spring MVC > ContextLoaderListener
- 演示控制客户端浏览器的缓存时间