C++ const总结
来源:互联网 发布:空军一号 国际歌 知乎 编辑:程序博客网 时间:2024/06/16 09:05
1.const关键字作用
const的作用是将声明对象声明为常量(即不可修改)。
举个简单例子:
const int a = 1;
a = 2 //error,a 不可修改
2.const的用法:
1)const与变量结合
2)const与函数结合
3)const与类结合
1)const与变量结合:
这里要注意的是const与指针结合,const与*的位置不同会代表不同意义。
int a = 1;
const int *ptr1 = &a; //这个是ptr1指针指向的是常量, 不可(*ptr1)++;
int *const ptr2 = &a; //这个是ptr2指针本身是常量,即不可ptr2++;
2)const与函数结合
与全局函数结合:
const int func1(const int &a){} //返回类型为一个常量,函数返回值会赋给一个const常量 如 const int a = func1(para);
与成员函数结合:
const int func1(){} // 表示函数返回类型为常量,const修饰的是返回类型。该函数与普通成员函数一样,可以调用全部数据成员,可以修改数据成员的值;但不能调用const对象的任何成员。
int func() const{} // 表示常量成员函数
//对数据成员,没有更改数据成员的值的权限(但能访问全部数据成员); 对类的对象:能访问const 和非const对象全部成员。
3)const与类结合
const Class object1; //常量对象 ;对于数据成员:常量对象不能更改数据成员的值,但可以调用所有数据成员。
//对于成员函数:常量对象只能调用const常函数,这是最大的区别
注意:常量对象的性质是不能修改对象内任何东西,所以决定了常量成员函数也不能修改数据成员。
总结:
const对象 非const对象
权限: const成员函数 全部函数
全部数据成员的调用权 全部数据成员的调用权和修改权(非const数据成员)
(没有修改数据成员的权限)
4)常量成员函数可以重载参数一模一样的成员函数:
例:
class test{
int func1() {}; //1
int func1() const {}; //2 这是重载
}
int main(){
test ob;
ob.func1(); //调用func1()
//const test ob;
// ob.func1(); //调用 func1() const;
}
对于这种重载,const对象调用const成员函数,非const对象调用非const 函数
常量成员函数返回的时类型是const,不能修改,非常量成员函数可以返回引用类型,作为左值
- C++const用法总结
- C++const用法总结
- C++const用法总结
- C++const用法总结
- C++const用法总结
- C++const用法总结
- C++const用法总结
- c++->const用法总结
- C++const总结
- C++:const用法总结
- C++const用法总结
- C++const总结
- C++-const 总结
- C/C++ const总结
- <C++> const总结
- const 用法总结(C++)
- C语言Const用法总结
- C语言总结之const
- redis乐观锁实现秒杀
- DrawLayout
- 技术的正宗与野路子
- IT行业offer分析
- 双倍回文
- C++ const总结
- 堆排序
- [kuangbin带你飞]专题十六 KMP & 扩展KMP
- 访问private函数的方法
- makefile 中 $@ $^ %< 使用
- 数据结构与算法导读
- 微信公众平台的配置步骤
- 纯C实现的一套low b 贪吃蛇(娱乐版)
- 问题记录(Hessian)