class FunctionBase {
public:
const double operator() (double a_) const = 0;
}
class AddN : public FunctionBase {
public:
AddN (int n_) : FunctionBase(), _n(n_) {}
const double operator() (double a_) const { return (a_ + n); }
private:
int _n;
}
是否必須使用FunctionBase *
作爲佔位符,因爲編譯器沒有能力從一個FunctionBase
重構AddN
的,或者是有使用FunctionBase &
的方法嗎?C++通用使用的父類(引用或指針)
- 編輯 -
我有一個std::map<std::string, FunctionBase *>
,我很好奇,如果我能夠使用一個參考,而不是一個指針,所以我可以保證指針不爲NULL之前,我使用它。我試圖讓代碼更具抗錯性。如果我將它切換到FunctionBase &
,編譯器會抱怨它不能從FunctionBase &
實例化AddN
,這是完全合理的,但是我希望有一個我不知道的常用解決方法。
你能詳細說明你在努力實現一點點改善嗎? 「使用類作爲佔位符」是什麼意思? – Shoe 2013-03-17 21:28:11
這不太清楚你的意思。佔位符是什麼?你能說明你打算如何使用這些課程嗎?你面臨的具體障礙是什麼? – 2013-03-17 21:28:32
@Jueecy請你回顧一下我的問題,我已經編輯它使其更加清晰。基本上我需要語法技巧或任何替代品。 – Zak 2013-03-17 22:09:39