在这种情况下,类对象的常量性决定调用哪个函数。
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