2017-12-03 121 views
-3

在我問我的問題之前,我將描述該場景。C++,子類中成員函數的返回類型問題

比方說,我有一個叫BinaryOperator的類,有兩個子類:And,Or

我想知道是否有可能對我來說,And返回類型爲Or*定義一個函數f()像這樣:

Or* And::f() 

而且還Or返回類型爲And*定義一個函數g()像這樣:

And* Or::g() 

當我嘗試這樣做時,最終出現編譯錯誤,說「'或'沒有命名類型」。

請,如果可以,任何清晰度將不勝感激。

+0

請張貼[MCVE。 –

+3

而不是試圖描述你的代碼,爲什麼不只是發佈一些代表性的代碼? –

+0

嗨,對不起,我沒有發佈任何代碼的原因是因爲大多數代碼不是我自己的,我不知道是否可以發佈它。另外,我的問題不是關於特定的代碼,而是一般情況下,如果給定兩個子類,我可以在每個類中定義一個成員函數,並返回指向其他類的指針 –

回答

1

你所尋找的是這樣的:

class Or; // <-- forward declaration 

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

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