C++成员函数后面加override

class A
{
    virtual void foo();
}
class B :public A
{
   
    void foo() override; 
}

如果一个成员函数后面跟了一个override关键字,说明这个函数将重写这个函数,下面的方式也可以进行重写。

void foo(); 
virtual foo(); 

但是后面加override算是一种声明,此函数要重写同名函数,所以如果将函数的名字写错了比如写成f00则会报错,而下面的两个却不会,这样也可以提醒代码阅读者这是一个重写的函数。

C++成员函数末尾的const

const:常量,在成员函数后面增加一个const。不单要在成员函数声明中增加const,也要在函数定义中增加const。

作用:告诉系统,这个函数,不会修改对象里的任何成员变量的值等等。也就是说,这个成员函数,不会修改类Time的任何状态。

成员函数后面加const的成员函数也称为“常量成员函数”。

class Time {
public:
    int hour;
    int minute;
    int second;
    //成员函数
public:
    void addhour(int temphour) const;
};
void Time::addhour(int temphour) const {
    hour += temphour;//报错,不能修改
}

const函数都能被调用。const 对象只能调用const函数。

换种说法:const成员函数可以被const对象和非const对象调用;非const成员函数只能被非const对象调用,不能被const对象调用。

class Time {
public:
    int hour;
    int minute;
    int second;
    //成员函数
public:
    void addhour(int temphour) {
        hour += temphour;
    }
    void nooe()const {};
};
    const Time abc;
    abc.addhour(10);//报错
    abc.nooe();//正确
    Time time2;
    time2.addhour(10);//正确
    time2.nooe();//正确

普通函数(非成员函数)后面不能放const。const意思是成员函数值不能改变,普通函数没有成员函数。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

原文地址:https://blog.csdn.net/weixin_42238150/article/details/106459455

相关文章:

  • 2021-12-25
  • 2021-12-11
  • 2021-08-05
  • 2022-12-23
  • 2022-12-23
  • 2021-06-12
  • 2021-05-25
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-06-30
  • 2021-08-19
  • 2021-09-26
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案