当前位置:C++技术网 > 资讯 > 关于C++语言const关键字的总结

关于C++语言const关键字的总结

更新时间:2016-07-30 00:44:09浏览次数:1+次

示:此文的知识点均参考于 C++ primer 第五版 ,目前总结有八点,如果有漏缺或者错误,请及时指出。

1,const对象(变量)初始化时,要赋值。(53页)

2,默认情况下,const对象仅在单个文件中访问。(如果要多个文件访问,需要加extern)
(54页开头部分)

3,常量的引用(const  int  &a)不能用作修改它所绑定的任何的对象(变量).
(54页的2.4.1)

4,虽说引用的类型必须与被引用的对象的类型一致,但是有一个特殊的例外(还有另一个例外,但是不是很难理解,所以不讲),在const的引用中,只要被引用的对象能转换成与引用相同的类型即可(参考2.1.2的类型转换规则)。对于绑定不相同的类型的对象,会创建一个相同类型和资格的临时量(前提是,符合转换规则)。(详见55页)

如图:


5,普通的引用的类型必须与被引用的对象一致的原因是因为,在绑定不同类型的 a 对象时,引用会自动绑定一个 b 临时量来进行类型的转换。因为你想改变的是a对象,而不是 b 临时量。所以,C++把这一行为看为非法行为。

(详见55页)
如图:

6,所谓的顶层和底层const,无非就是指针常量以及任何常量的对象(顶层)和指向常量的指针以及常量引用(底层)。(57页的2.4.3)


7,指针可以是顶层和底层。(学过C语言的同志应该知道。。)    (57页的2.4.3)


8,在底层const对象的拷贝中,要求拷贝的对象必须拥有相同的资格(同为底层const),因为C++的一个规则:非常量可以转换成常量,反之,则不行。而在顶层const对象中,可以忽视这一点。(58页中有所解释)