以下代码无法在Visual Studio 2005中编译:
class OriginalClass
{
public:
class Delegate
{
virtual void original_func()=0;
};
};
class BaseClass
:public OriginalClass::Delegate // Problem line 1
{
public:
class Delegate
{
virtual void base_func(int x) = 0;
};
void original_func()override{} // Problem line 2
};
class DerivedClass : public BaseClass::Delegate
{
public:
virtual void base_func(int x) override {};
};
int main ()
{
DerivedClass derived_object;
derived_object.base_func(10);
}
Run Code Online (Sandbox Code Playgroud)
构建输出是:
1>inherit\main.cpp(26) : error C3668: 'DerivedClass::base_func' : method with override specifier 'override' did not override any …Run Code Online (Sandbox Code Playgroud)