第二遍C++primer->关于const,仅用于自己加深记忆
2013-08-23 15:59
183 查看
1.const引用 指向const对象的引用
const 引用 :可以初始化为不同类型的对象(相关的)或者初始化为右值(字面值常量等);
非const引用: 只能绑定同类型的对象,不能绑定非const对象
2.指向const对象的指针
例如 const int * ming
const对象地址赋给指向非const对象的指针只能不可行,但非const对象的地址赋给指向const对象的指针可行;
3.const指针
例:
int *const ming 本身无法修改
4.形参:
(1)非引用形参 是否定义为const无差别, 因为非引用形参是传递实参的副本,函数本身无法修改实参。
(2)引用 const 引用的形参 不可修改,但由于非const引用只能绑定同类型的对象,影响函数的可用性,所以尽量将不需要修改实参的形参定义为const
指针形参的处理如出一辙。
const 引用 :可以初始化为不同类型的对象(相关的)或者初始化为右值(字面值常量等);
非const引用: 只能绑定同类型的对象,不能绑定非const对象
2.指向const对象的指针
例如 const int * ming
const对象地址赋给指向非const对象的指针只能不可行,但非const对象的地址赋给指向const对象的指针可行;
3.const指针
例:
int *const ming 本身无法修改
4.形参:
(1)非引用形参 是否定义为const无差别, 因为非引用形参是传递实参的副本,函数本身无法修改实参。
(2)引用 const 引用的形参 不可修改,但由于非const引用只能绑定同类型的对象,影响函数的可用性,所以尽量将不需要修改实参的形参定义为const
指针形参的处理如出一辙。
相关文章推荐
- 第二遍C++primer->关于指针与const
- 第二遍C++primer->关于变量名和地址的探讨(转载来的文章,供日后参考。)
- 第二遍C++primer->const成员函数
- 第二遍C++primer->关于数组名的输出,数组名和指针
- 第二遍C++primer->关于endl刷新缓冲区
- 第二遍C++primer->关于关键字extern,
- 第二遍C++primer->数组指针和指针数组
- 第二遍C++primer->转换与继承
- 第二遍C++primer->函数模板类型实参的受限转换
- 第二遍C++primer->C风格字符串
- 关于getchar()cin>> 缓冲区的一点发现
- 关于<a>标签的问题
- spring使用@value关于<context:component-scan base-package=”com.baidu” />的一个错误
- could not deduce template argument for 'const std::_Tree<_Traits> &' from 'const std::string'
- 【ThinkingInC++】59、关于operator->
- bool std::operator <(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)
- 《C++primer》读书笔记——关于const引用
- STM32存储器 — <1> 关于STM32的存储器
- 关于错误IOError:<urlopen error (-3, 'Temporary failure in name resolution')>的解决
- 关于DockControlBar()时调试出现ASSERT(pBar->m_pDockContext != NULL);错误处