优快云 叶落归时雨 转载请注明出处
目录
- C++ 有关const int *p; int const *p; const int *p
- 对象中的const
1.C++ 有关const int *p; int const *p; const int *p
下面列举表格说明:
| 类型 | 解释 | 可否更改本身 | 可否更改所指向(引用)的变量 |
|---|---|---|---|
| const int n | n是常整型 | 否 | \ |
| int const n | n是常整型 和上无任何区别,习惯使用上面 | 否 | \ |
| const int *p | p是指向const int(常整型)的指针 | √ | 否 |
| int const *p | p是指向int const(常整型)的指针和上无任何区别 | √ | 否 |
| int *const p | p是指向int(整型)的“常”指针 | 否 | √ |
| const int *const p | p是指向const int(常整型)的“常”指针 | 否 | 否 |
| const int &a | a是常(整型)引用 | 否 | 否 |
| int const &a | a是常(整型)引用和上无任何区别 | 否 | 否 |
总结
对含const类型的变量定义理解如下:
- 如果是变量或者引用:const 加在类型名前后无区别
- 如果是指针:
< 常类型限制 > type < 常类型限制 > * < 常指针限制 > 变量名,加在 * 前表示常类型,加在* 后表示常指针。type前后均相同。
2.对象中的const
常数据成员
常数据成员和常量一样,是不能被修改的数据,在初始化时必须通过初始化列表初始化
常成员函数
某函数尾缀加上const,意味着该函数是不能对数据成员进行修改的。
简洁一点:常成员函数运行时,不能有修改数据的可能
eg:print函数,我们不希望他有修改数据成员的风险,因此 print()const{} 成了我们的选择
特点:
- 常成员函数能调用
常数据和非常数据,只要不改变数据即可 - 常成员函数不能调用非常成员函数,因为非常成员函数是可以修改数据的,使得数据在常成员函数运行时变化,这是不安全的
常对象
常对象要求对象建立时,对数据进行保护,不能通过常对象调用非常成员函数
本文详细解析了C++中const修饰符的使用方法及其在指针、引用及对象中的含义。介绍了const修饰不同类型变量的区别,并对常成员函数、常数据成员及常对象的概念进行了阐述。
6879

被折叠的 条评论
为什么被折叠?



