c ++,在子类中返回成员函数类型的问题

时间:2017-12-03 00:33:34

标签: c++ member-function-pointers

在我提出问题之前,我将描述一下这个场景。

我们假设我有一个名为BinaryOperator的班级,其中包含2个子类:AndOr

我想知道我是否可以在f()中定义一个函数And,返回类型为Or*,如下所示:

Or* And::f()

并在g()中定义一个函数Or,返回类型为And*,如下所示:

And* Or::g()

当我尝试这样做时,我最终会出现一个编译错误,说明" '或'没有命名类型"。

如果可以的话,请表示赞赏。

1 个答案:

答案 0 :(得分:1)

您正在寻找的是这样的:

class Or; // <-- forward declaration

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

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