蓝波 的个人资料Oliver ◑﹏◐照片日志列表 工具 帮助

日志


4月9日

C++中的Const

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++版精华区