码迷,mamicode.com
首页 > 其他好文 > 详细

const的限定

时间:2016-01-17 01:14:58      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

    const对象一旦创建后,其值就不可以改变,所以const对象必须初始化。与非const的类型比较,主要区别在于const类型对象执行但是不改变其操作内容。

    在默认状态下,const只在文件内有效。在默认状况下,const定义的对象仅限定在文件类起作用,当多个文件中出现了同名的const时其实等同于在不同文件中分别定义了独立的变量。于是我们只在一个文件中定义const对象,而在其他文件中仅仅声明就可以。对于const对象不管是声明还是定义都加extern关键字,这样只需要定义一次就可以了。如下:

        //在file1.h文件里面定义i

        extern const int i=3;    //将i定义为常量3

      //在file2.h中引用i时只要声明就可以,避免重定义

        extern const int i;

         int a=i;   //这样就可以使用i了

const的引用被称为对常量的引用(reference to const),引用类型必须与其所引用的对象保持一致,但是在这里有两个例外,第一个例外是在初始化常量引用时允许用任意表达式作为初始值。允许为一个常量引用绑定非常量对象,字面值,甚至是一个表达式:

                          int i=42;

                          const int &r1=i;    //正确,此时r1与i绑定

                          const int &r2=42;  // 正确,此时绑定一个字面值42

                          const int &r3=r1*2;  //正确,r3是一个常量引用,绑定字面值84

                           int &r4=42;    //错误,非常量引用不可绑定字面值

 

                                                               

const的限定

标签:

原文地址:http://www.cnblogs.com/td15980891505/p/5136638.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!