const关键字

2018-08-14  本文已影响0人  _gentle
const int a = 1;//内部链接
extern const int a = 2; //外部链接

但不要轻易的这么做,因为C++设计全局常量为内部链接的是有原因的。假如你在一个头文件(假设为constant.h)中申明了一系列的常量,工程的其他文件下引用constant.h。若全局常量的链接性为外部的,那么将有一个只能有一个文件包含constant.h,如果有多个文件包含,则会产生重定义的错误。因此其他文件必须使用extern来引用这个头文件中的常量,造成不便。因此假如你要使得一个常量为外部链接的,需要注意到这一点

int* const p = &a;//指针不可修改
const int* p = &b;//指针指向的内存区域不可修改
class A {
public:
    const int a = 2;
};
class A {
public:
    void f() const {
    //  a = 2;//error
        int b = 2;//ok
        c = 4;//ok
    }
    int a;
     mutable int c = 3;
};
上一篇下一篇

猜你喜欢

热点阅读