我有一个这样的模板:
template<typename T>
struct foo {
foo(T t) {
//code
}
virtual double computation() = 0;
//other members
};
我希望用户为他们自己的子类提供自定义T
,computation()
如下所示:
struct my_foo : public foo<std::string> {
double computation() override { return 9.99; }
};
问题是这不起作用:
my_foo("hello");
我必须要求用户为每个子类创建一个新的构造函数,即使它所做的只是调用超类的构造函数。这看起来很傻。
您能否建议可能更适合我的替代“设计模式”?