在MSDN中, __super解释为:允许您显式说明要为正在重写的函数调用基类实现,看上去很难理解,所以自己归纳了如下:
1.在包含多个基类时, 使用__super可以自动找到正确的基类.
2.如果两个基类成员名称相同,编译器会报错.
3.__super 不能和 using一起使用.
示例:
struct B1 {
void mf(int) {}
};
struct B2 {
void mf(short) {}
void mf(char) {}
};
struct D : B1, B2 {
void mf(short) {
__super::mf(1); // Calls B1::mf(int)
__super::mf('s'); // Calls B2::mf(char)
}
};