以下不起作用:
std::vector<IRule*> vec;
RuleRangeDouble *rule = new RuleRangeDouble(0, 100);
vec.push_back(rule);
现在如何制作不同规则的向量?我知道,我必须使用指针......但是我还需要做什么才能让它工作?我怎样才能改变我的基本结构来完成这项工作?
我使用如下接口:
// Interface
template <typename T>
class IRule
{
public:
virtual bool isValid(T value) = 0;
};
我的示例类如下所示:
class RuleRangeDouble : public IRule<double>
{
private:
double min;
double max;
public:
bool isValid(double value)
{
....
};
};