下面的代码是从派生类的函数调用基类的重写函数的正确方法吗?:
#include "stdafx.h"
#include <iostream>
class BaseClass
{
public:
virtual void foo()
{
std::cout << "BaseClass::foo()" << std::endl;
}
};
class DerivedClass : BaseClass
{
public:
virtual void foo()
{
__super::foo();
std::cout << "DerivedClass::foo()" << std::endl;
}
};
int main()
{
DerivedClass* dc = new DerivedClass();
dc->foo();
delete dc;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
不,您使用的呼叫__super::foo()是使用Microsoft语言扩展.
相反,你可以写BaseClass::foo().
或者如果你有typedef BaseClass Base,那么Base::foo().
干杯&hth.,
| 归档时间: |
|
| 查看次数: |
145 次 |
| 最近记录: |