4月9日
const出现位置(example)
<1>
const int i = 0;
const char * a;
char * const cp;
<2>
const T1 func(T2)
const char * func(T2)
char * const func(T2)
T1 func(T2) const
T1 func(const char *)
T1 func(char * const T2)
意义
<1>
char * const cp ;//const pointer to char
char const * cp; //pointer to const char
const char * pc; //pointer to const char
从右往左读
<2>
T1 func(T2) const;
1)类成员函数后加const不能修改类的除了mutable以外的成员变量
2)非const对象 调用 非const函数, 若不存在则调用相应的const版本
3)const对象只能调用const成员函数
example:
------------------
class A
{
void func1() const //NO.1
{}
void func1() //NO.2
{}
void func2() const //NO.3
{}
void func3() //NO.4
{}
}
const A ca;
A a;
a.func1();//call NO.2
a.func2();//call NO.3
a.func3();//call NO.4
ca.func1();//call NO.1
ca.func2();//call NO.3
ca.func3();//error
-----------------------------------------摘自缥缈水云间C++版精华区