如何更改以下代码以允许创建Base对象 使用模板化构造函数?
struct Base {
template <typename T>
Base(int a) {}
};
int main(int argc, char const *argv[])
{
Base *b = new Base<char>(2);
delete b;
return 0;
}
答案 0 :(得分:-1)
答案 1 :(得分:-1)
问题有点模糊。你的意图是替换&#34; int a&#34;在基础上与&#34; T a&#34;?如果是这样,您可能希望使用函数模板类型推断,如下所示:
template<typename T>
Base<T> CreateBase(T a)
{
return new Base<T>(a);
}
// Call site avoids template clutter
auto base = CreateBase(2);