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 *
由于编译器无法AddN
从 a重建 a ,我是否必须用作占位符FunctionBase
,还是有办法使用FunctionBase &
?
- 编辑 -
我有一个std::map<std::string, FunctionBase *>
,我很好奇我是否能够使用引用而不是指针,所以我可以保证在使用它之前指针不为 NULL。我正在尝试使代码更耐错误。如果我将它切换到 a FunctionBase &
,编译器会抱怨它无法实例化AddN
,FunctionBase &
这是完全有意义的,但是我希望有一个我不知道的常见解决方法。