const放在函数后面

 

classA
{
public:
    f(int);
};

  如果一个成员函数不会修改数据成员,那么最好将其声明为const,因为const成员函数中不允许对数据成员进行修改,如果修改,编译器将报错,这大大提高了程序的健壮性。   

  这里f函数其实有两个参数,第一个是A*const this, 另一个才是int类型的参数 如果我们不想f函数改变参数的值,可以把函数原型改为f(const int),但如果我们不允许f改变this指向的对象呢?因为this是隐含参数,const没法直接修饰它,就加在函数的后面了,表示this的类型是const A *const this。 const修饰*this是本质,至于说“表示该成员函数不会修改类的数据。否则会编译报错”之类的说法只是一个现象,根源就是因为*this是const类型的。

相关文章:

  • 2021-05-18
  • 2021-12-17
  • 2022-12-23
  • 2021-08-13
  • 2021-10-27
  • 2021-06-23
  • 2021-07-30
猜你喜欢
  • 2021-11-19
  • 2022-12-23
  • 2021-06-04
  • 2022-12-23
相关资源
相似解决方案