__super
Visual Studio 2005中新增了__super关键字,它代表本类的基类。
使用方法
__super::member_function();
实验得,该关键词会自动寻找最近重载的虚函数调用,即连续重载的各个类,会调用最近的重载基类的虚函数。
__super代表该基类的空间类名
#include <iostream>
using namespace std;
class base
{
public:
virtual void fun(){ cout << "base" << endl; }
};
class A :public base
{
public:
void fun() override{cout << "A" << endl;}
};
class B :public A
{
public:
void fun() override
{
__super::fun();
cout << "B" << endl;
}
};
void main()
{
B b;
b.fun(); //输出 A B
}