小编Eog*_*han的帖子

Visual Studio 2005 c ++继承错误的解决方法

以下代码无法在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)

c++ inheritance nested-class visual-c++-2005

5
推荐指数
1
解决办法
450
查看次数

标签 统计

c++ ×1

inheritance ×1

nested-class ×1

visual-c++-2005 ×1