c++,子类中 return 类型的成员函数的问题
c++ , issues with return type of member functions in subclasses
在问问题之前,我先描述一下场景。
假设我有一个名为 BinaryOperator
的 class 和 2 个子class:And
、Or
.
我想知道我是否可以在 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();
};
在问问题之前,我先描述一下场景。
假设我有一个名为 BinaryOperator
的 class 和 2 个子class:And
、Or
.
我想知道我是否可以在 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();
};