我那个编译器里把override标蓝(表示那是系统关键字),它有什么用?
我知道【英语单词】override表示子类覆盖掉父类的方法,调用时会调用子类的方法;父类对应的方法已经用virtual修饰。我问的是override作为c++【关键字】的用处。
是重载的意思,重载 了一个方法并且对其重写,以求达到不同的作用。
C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个函数完成不同的功能。
覆盖就是对接口方法的实现,在接口中一般只是对方法进行了声明,而在实现时,就需要实现接口声明的所有方法。除了这个典型的用法以外,在继承中也可能会在子类覆盖父类中的方法。
当将要定义一组函数,使执行一系列的操作,但是它们是应用在不同的参数类型上的。此时可以选择重载函数。
例如: int z_x_max (int,int); //返回两个整数的最大值;
int ve_max (const vector <int> &); //返回vector容器中的最大值;
int matrix_max (const matrix &); //返回matrix引用的最大值;
扩展资料
在使用重载时只能通过不同的参数样式。例如,不同的参数类型,不同的参数个数,不同的参数顺序(同一方法内,参数类型参数类型不同的情况下才考虑参数顺序.比如fun(int a,int b)和fun(int b,int a)则是同样的方法,不能算作重载);
不能通过访问权限、返回类型、抛出的异常进行重载;方法的异常类型和数目不会对重载造成影响;对于继承来说,如果某一方法在父类中是访问权限是priavte,那么就不能在子类对其进行重载,如果定义的话,也只是定义了一个新方法,而不会达到重载的效果。
参考资料来源:百度百科-重载函数
参考资料来源:百度百科-override
override保留字表示当前函数重写了基类的虚函数。
在函数比较多的情况下可以提示读者某个函数重写了基类虚函数,表示这个虚函数是从基类继承,不是派生类自己定义的;强制编译器检查某个函数是否重写基类虚函数,如果没有则报错。在类的成员函数参数列表后面添加该关键字既可。
override只是C++保留字,不是关键字,这意味着只有在正确的使用位置,oerride才启“关键字”的作用,其他地方可以作为标志符,如:intoverride;是合法的。
扩展资料
override的使用,示例:
classBase{
virtualvoidf();
};
classDerived:publicBase{
voidf()override;//表示派生类重写基类虚函数f
voidF()override;//错误:函数F没有重写基类任何虚函数
};
参考资料来源:百度百科—重载函数
参考资料来源:百度百科—override
本回答被网友采纳1、override关键字,可以让编译器检测到很难发现的程序错误。这个错误在于,override关键字表明,g(double)虽然想要进行override的操作,但实际父类并没有这么个函数。
值得注意的是,这些并不是一些语法糖,而是能确确实实地避免很多程序错误,并且暗示编译器可以作出一些优化。
2、例程: