C++的const类成员函数
作者:网络转载 发布时间:[ 2014/4/3 13:42:08 ] 推荐标签:C++ const 函数
虽然m_Name不能被修改,但m_sName是char *类型,const成员函数可以修改其所指向的字符。
const成员函数可以被具有相同参数列表的非const成员函数重载,例如:
class Screen {
public:
char get(int x,int y);
char get(int x,int y) const;
};
在这种情况下,类对象的常量性决定调用哪个函数。
const Screen cs;
Screen cc2;
char ch = cs.get(0, 0); // 调用const成员函数
ch = cs2.get(0, 0); // 调用非const成员函数<span style="font-family: Arial, Helvetica, sans-serif;"> </span>
小结:
1)const成员函数可以访问非const对象的非const数据成员、const数据成员,也可以访问const对象内的所有数据成员;
2)非const成员函数可以访问非const对象的非const数据成员、const数据成员,但不可以访问const对象的任意数据成员;
3)作为一种良好的编程风格,在声明一个成员函数时,若该成员函数并不对数据成员进行修改操作,应心可能将该成员函数声明为const 成员函数。
4) 构造函数和析构函数是两个例外 即使构造函数和析构函数不是const 成员函数 const 类对象也可以调用它们 当构造函数执行结束 类对象已经被初始化时 类对象的常量性
被建立起来了 析构函数一被调用 常量性消失 所以一个 const 类对象 从构造完成时刻到析构开始时刻这段时间内被认为是const

sales@spasvo.com