C++中的const使用小结
2015-09-01 09:44
351 查看
const最简单理解就是“不可更改”。之后再根据const出现的位置来具体理解不可更改的内容。
A. 指针所指向的数据内容不可更改。
假如有定义: char str[] = “hello”; 则:
1. const char *p = str;
2. char const *p = str;
上两种定义方式含义相同,即表示通过指针p无法更改其所指向的数据内容。
但可改变指针p所指向的位置。也就是说p[0] = ‘a’是违法的,但p = “hello”是允许的。
同理 const char str[] = “hello”也一样。
B. 指针所指向的位置不可更改。
1. char* const p = str;
则p = “hello”是违法的,但p[0] = ‘a’是允许的。
C. 函数返回值为const。
const Object get();
D. 成员函数为const,声明后该成员函数无法更改成员变量(静态成员变量除外)
E. 形参为const的,与A,B一致
A. 指针所指向的数据内容不可更改。
假如有定义: char str[] = “hello”; 则:
1. const char *p = str;
2. char const *p = str;
上两种定义方式含义相同,即表示通过指针p无法更改其所指向的数据内容。
但可改变指针p所指向的位置。也就是说p[0] = ‘a’是违法的,但p = “hello”是允许的。
同理 const char str[] = “hello”也一样。
B. 指针所指向的位置不可更改。
1. char* const p = str;
则p = “hello”是违法的,但p[0] = ‘a’是允许的。
C. 函数返回值为const。
const Object get();
D. 成员函数为const,声明后该成员函数无法更改成员变量(静态成员变量除外)
class Object{ private: int val; static int i; public: void fun() const { val = 0; //错误,不能更改成员变量 i = 0; //正确,i为静态变量 } }
E. 形参为const的,与A,B一致
相关文章推荐
- c++运算符重载
- C语言宏定义
- C++的头文件(.h)和实现文件(.cpp)分别写什么
- 在c/c++语言中,为什么c[5] == 5[c]
- libc++abi.dylib: terminate_handler unexpectedly threw an exception 问题解决
- 快速排序算法C++
- 详细对比C语言中的chmod()函数和fchmod()函数
- 理解C++存在继承和组合的对象构造函数调用顺序
- strlen 是C语言的一个库函数计算字符串长度
- c/c++学习的经典网站
- C语言的国际化
- Visual Studio 2015的C++开发新特性(链接)
- C++、PHP和Swoole
- C++控制台应用程序之贪吃蛇(改进版)
- Effective C++ 条款28 避免返回handles指向对象内部成分
- 用C++写COM组件并用C#调用
- Effective C++ 条款27 尽量少做转型操作
- Effective C++——条款15(第3章)
- 初学算法-快速排序与线性时间选择(Deterministic Selection)的C++实现
- Effective C++——条款14(第3章)