C/C++

const修饰指针变量/引用/对象

2019-03-17  本文已影响0人  cx7

const修饰指针或者指针变量的区别

char gVariable = 0xff;

修饰指向的变量(gVariable不可被修改, pNext可以改变指向)
const char* pNext = &gVariable;
  
修饰指针本身(gVariable可被修改,pNext不可修改 只能指向gVariable)
char* const pNext = &gVariable;

分辨的规则在于从const起往右读取 被修饰的是指针还是指针变量

const char* pNext = &gVariable; const右边的是  *pNext 指针变量 所以gVariable 不可被修改

char* const pNext = &gVariable; const右边的是 pNext 指针 所以pNext不可被改变

const修饰对象和成员函数

const修饰的成员函数 不能修改类的变量属性
一般用来控制get类的方法

class obj {
public:
    void getid() const {
        return id;
    }
private:
    int id;
};

const修饰的对象 只能调用它的const成员函数

const修饰引用

和指针不同 引用是不支持const修饰的 引用自声明起 就固定指向某一个对象 不能改变

cons int &a = 5;

这样的修饰 实际上是指定了a指向的这个对象不可修改
所以类似这样的操作 编译器会报错

int & const a = 5; //error 引用不允许const修饰
上一篇 下一篇

猜你喜欢

热点阅读