c++ 专题 2 面向对象:常量成员函数

文章目录


说明:默认情况下,this 的类型是指向非常量的指针常量(int * const),因此不能将 this 绑定到一个常量对象上,即常量对象不能调用普通的成员函数。同时 this 是隐式形参,又不能将 this 声明为指向常量的指针常量(const int * const)来绑定常量对象,因此 c++ 用参数列表后的关键字 const 表示 this 是一个指向常量的常量指针。

  • 常量成员函数不能修改调用对象的数据成员;
  • 只有非常量对象可以调用非常量成员函数;
  • 常量对象,非常量对象都可以调用常量成员函数;

注意事项:

  • 声明,定义处都要指定 const 属性。
  • 在常量成员函数内返回 *this,那么函数的返回类型将是常量引用(const int&);

特殊情况:

  • 常量对象可以调用非常量的构造函数。这是由于常量对象所谓的常量属性是在构造函数完成了对对象的初始化之后才生效的。

  • 常量成员函数可以修改调用对象的可变数据类型(mutable 修饰),即使调用对象是常量对象;


参考:

(25条消息) C++中常量成员函数_棉猴的博客-CSDN博客_c++常量函数

(25条消息) 常量对象与常量成员函数_飞天絮雪的博客-CSDN博客_常量对象只能调用常量成员函数

你可能感兴趣的:(c++,c++,开发语言)