代码之家  ›  专栏  ›  技术社区  ›  Asgar Hussain

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

  •  -3
  • Asgar Hussain  · 技术社区  · 8 年前

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

    比如说我有一个叫做 BinaryOperator 有2个子类: And , Or .

    我想知道我是否可以定义一个函数 f() 在里面 带返回类型 Or* 像这样:

    Or* And::f()
    

    并定义一个函数 g() 在里面 带返回类型 And* 像这样:

    And* Or::g()
    

    当我尝试这样做时,我最终会出现一个编译错误,即“'或'不命名类型'”。

    如果可以的话,请澄清。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Remy Lebeau    8 年前

    你要找的是这样的东西:

    class Or; // <-- forward declaration
    
    class And : public BinaryOperator
    {
    public:
        Or* f();
    };
    
    class Or : public BinaryOperator
    {
    public:
        And* g();
    };