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