C++关键字之const
C++的const关键字一直让我很乱,这里把const关键字在程序中常用的三个地方分别总结出来:
1、 通过指针或引用访问普通变量
2、 通过对象调用成员函数,通过成员函数访问成员变量
3、 通过形参传递实参
const修饰指针、引用、普通变量(通过指针或引用访问普通变量)
|
非const变量 |
const变量 |
非const指针或引用 |
1、指针或引用能变指向 2、变量能变值 |
不合法 |
const指针或引用 |
1、指针或引用不能变指向 2、变量不能通过该指针或引用变值,但能通过其他方式变值 |
1、指针或引用不能变指向 2、变量不能变值 |
Const修饰类对象、成员变量、成员函数(通过对象调用成员函数,通过成员函数访问成员变量)
|
|
非const成员函数 |
const成员函数 |
非const对象 |
非const成员变量 |
可读取可修改 |
可读取不可修改 |
const成员变量 |
可读取不可修改 |
可读取不可修改 |
|
const对象 |
非const成员变量 |
const对象全部成员变量均为const的 |
|
const成员变量 |
const对象不能调用非const成员函数 |
可读取不可修改 |
Const修饰形参、实参(通过形参传递实参)
|
|
非const实参 |
const实参 |
非引用 |
非const形参 |
可接受 |
可接受 |
const形参(在函数中跟非const形一样,可修改) |
可接受 |
可接受 |
|
引用 |
非const形参 |
可接受(不接受字面值、表达式、需转换类型的) |
不合法 |
const形参 |
可接受 |
可接受 |