C++的const类成员函数(二)

2014-04-06 17:36:12 · 作者: · 浏览: 237

 

  在这种情况下,类对象的常量性决定调用哪个函数。

  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