派生类中基类类型可见性的规则是什么?

时间:2016-07-25 10:04:24

标签: c++

我有一个这样的课程

template <typename T>
class Parent
{
public:
    typedef T Value;
    typedef int Argument;

    virtual Value foo (Argument);

    class Child;
};

template <typename T>
class Parent <T> :: Child : public Parent <T>
{
public:
    Value foo (Argument) override;                 // (1)
};

template <typename T>
typename Parent <T> :: Child :: Value
Parent <T> :: Child :: foo (Argument arg)
{
    // ...
}

事实上,我有很多类遵循这种模式。这样的代码编译并正确运行。

现在我根据大致相同的模式添加了另一对类,我遇到了一些错误。

在(1)error: ‘Value’ does not name a type

实际上实际的类是复杂的和专有的所以我不能发布细节,但为了自己解决这个问题,在哪里可以找到管理父类型可见性的相关C ++规则嵌套和派生类?

0 个答案:

没有答案