c++,子类中 return 类型的成员函数的问题

c++ , issues with return type of member functions in subclasses

在问问题之前,我先描述一下场景。

假设我有一个名为 BinaryOperator 的 class 和 2 个子class:AndOr.

我想知道我是否可以在 And 中定义函数 f() 并使用 return 类型 Or* 像这样:

Or* And::f()

并在 Or 中定义一个函数 g(),return 键入 And*,如下所示:

And* Or::g()

当我尝试这样做时,我最终遇到了一个编译错误,提示“'Or' 没有命名类型”。

请,如果可以的话,任何清晰度将不胜感激。

你要找的是这样的:

class Or; // <-- forward declaration

class And : public BinaryOperator
{
public:
    Or* f();
};

class Or : public BinaryOperator
{
public:
    And* g();
};