C++中的关键字

const

  1. 默认状态下,const对象仅在文件内有效,这和非const对象存在很大不同,也就意味着:如果我们在头文件中包含了一个非cosnt对象,当该头文件被多个文件包含时,将会报出重复定义的错误,但是const对象则不会,我们可以默认其为static对象;

  2. 当我们需要多个文件共享同一const变量时,使用头文件固然可以,但更好的做法是:我们在一个文件中定义,而在其它文件中声明;需要注意的是,这里和非const变量也存在不同:非const变量只需要在声明时田间exxtern关键字即可,但是const变量则不管是声明还是定义都要田间extern关键字,我们可以这样理解:在默认const变量为static变量的情况下,我们必须在定义时添加extern关键字才能为其增加外部引用性;

  3. const引用及指针不要求其所指向的对象一定是一个常量,其含义仅限于不能通过该指针及引用去改变对象,但是可以通过其它途径;

  4. 我们需要区别指针指向常量对象及常量指针,指针指向常量对象意味着不能通过该指针去修改其指向的对象的值,但是可以修改该指针的指向;常量指针则意味着该指针不能修改该指针指向,但是可以通过该指针去修改其所指向对象的值;参考代码

  5. 顶层const表示指针本身就是个常量,而底层const表示指针所指向的是一个常量,更一般地说,顶层const可以表示任意的对象是常量,而底层const只存在于指针及引用当中。指针包含了顶层const和底层const,引用的const都是底层const,至于其它的类型则都是顶层const;对于顶层const,其拷贝没有任何影响,也就是说:我们可以把一个顶层const变量拷贝给一个非const变量,反之亦可;但是底层const变量则对此有严格限制:非常量可以拷贝给const变量,反之则不行;

0%