【发布时间】:2021-08-14 03:30:51
【问题描述】:
我有一个如下所示的课程:
class A
{
template<typename T>
T readValue(std::string name) {
return member.readValue<T>(name);
}
private:
MemberType member_;
}
我有另一个依赖于它的类,我需要用这个类的模拟版本注入那个类。所以我试图为这个类创建一个接口,我可以依赖它并用一个模拟对象来实现。
问题是我无法使用这样的模板函数创建接口:
class IA
{
template<typename T>
virtual T readValue(std::string name) = 0;
}
class A : public IA
{
public:
template<typename T>
virtual T readValue(std::string name)
{
return member_.readValue<T>(name);
}
private:
MemberType member_;
}
我如何干净地做到这一点?对于如何做到这一点,所有现有的答案似乎都需要从类中提取简单的接口。
【问题讨论】:
标签: c++ templates dependency-injection interface