C++中const属于顶层还是底层的区分

来源:互联网 发布:巴基斯坦海关数据 编辑:程序博客网 时间:2024/06/10 06:18

        首先说明一下,这是本人的学习过程中的笔记,可能会有出现理解不过透彻的地方。如有不同看法请在下方留言,方便更正。由于公司项目最近需要一些C++的知识,所以最近在学习,但是在接触到const,以及const与指针、const与引用、const与普通变量的时候,一直感觉自己云里雾里地。出于这个目的,查阅了一些资料,

         我们在学习const,以及const与指针、const与引用、const与普通变量的搭配时是顶层const还是底层const之前,首先需要我们理解一些知识:

          一、

           top-level const (顶层const): const 修饰的是自身
          low-level const (底层const): const 修饰的是别人

          二、

           什么叫自身,什么叫别人?C++ 的世界里:

  • POD,类对象都只能是"自身"。
  • 指针可以是自身(指针本身),可以是别人(指向别人)。
  • 引用没有自身,只能是别人。(引用是别名)。
          三、
         所以,有以下几个规律:
  • 指针,可以是 top-level const,也可以是 low-level const
  • 引用只能是 low-level const

        理解完上面这些知识点之后,我们就开始来学习const与指针、const与引用、const与普通变量的关系。

        第一点:const与指针搭配时

         const char *是 low-level(底层const) 。

     char * const 是 top-level(顶层const)。    

          第二点:const与普通变量搭配时:不能改变被const修饰的普通变量。
          
          第三点:const与引用搭配时:不能改变被const修饰的引用。
          

          

0 0
原创粉丝点击