版权声明:版权所有 如有侵权 概不追究 https://blog.csdn.net/weixin_40903417/article/details/87970563
override
多态行为的基础:基类声明虚函数,派生类声明一个函数覆盖该虚函数;
覆盖要求:函数签名(signature)完全一致;
函数签名包括:函数名 参数列表 const
override作用是保证派生类函数能覆盖基类的函数。
#include "stdafx.h"
using namespace std;
class Base1
{
public:
virtual void display()=0;
};
void Base1::display()
{
cout<<"Base1::display()"<<endl;
}
class Base2:public Base1
{
public:
virtual void display() override;
};
void Base2::display()
{
cout<<"Base2::display()"<<endl;
}
class derived:public Base2
{
public:
virtual void display() override;
};
void derived::display()
{
cout<<"derived::display()"<<endl;
}
void fun(Base1* pt)
{
pt->display();
}
int main()
{
/*Base1 a;*/
Base2 b;
derived c;
//fun(&a);
fun(&b);
fun(&c);
system("Pause");
return 0;
}
final
类名后加final不能被继承,函数名后加final不能被覆盖
class Base0 final
{
public:
virtual void display() final;
};