查看: 137|回复: 0

override

[复制链接]

1

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2010-8-10
发表于 2025-12-23 22:09:00 | 显示全部楼层 |阅读模式

override 学过Java的小伙伴们应该不陌生,这个关键字就类似Java中的注解@override

确保在子类中声明的重写函数与基类的虚函数有相同的签名,同时也明确表明将会重写基类的虚函数,这样就可以保证重写的虚函数的正确性,也提高了代码的可读性;

override和final一样这个关键字要写到方法的后面。

#include <iostream>
using namespace std;

class Base {
public:
	virtual void test() {
		cout << "dddd" << endl;
	}
};
class Chile :public Base {
public:
	void test() {
		cout << "Chile class...." << endl;
	}
};
class GrandChile : public Chile {
public:
    //void test13() override{ //报错:使用override的成员函数没有可重写的内容。
    //}
	void test() override{
		cout << "GrandChile class...." << endl;
	}
};
int main() {
	system("pause");
	return 0;
}

就如上面的代码,如果加了test13()加了override就会报错,提示开发者这里不是重写,如果不加override,这里就会定义一个新的名为test13()的函数,和开发者的意愿不同。

override只是为了提高了程序的正确性,降低了出错的概率。



来源:https://www.cnblogs.com/ggkx/p/19389343
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

圆梦公社,专注于为全球华人提供纯粹技术交流的地方,请勿发布任何政治及违法的言论。如有相关侵权、举报、投诉及建议等,请发 E-mail:dzh188@hotmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部