【发布时间】:2019-12-01 06:48:05
【问题描述】:
我在 C++ 中有以下代码 -
template <class T>
class TempClass {
T value;
public:
TempClass(T item)
{
value = item;
}
T getValue()
{
return value;
}
};
int main()
{
TempClass<string>* String =
new TempClass<string>("Rin>Sakura");
cout << "Output Values: " << String->getValue()
<< "\n";
class TempClass<int>* integer = new TempClass<int>(9);
cout << "Output Values: " << integer->getValue();
}
我想做的是使用多个模板和上面的类 TempClass。我知道这样做的一种方法是使用
template <class T1, class T2>
,但如果我这样做,那么类的所有实例都必须有 2 个模板参数。我想做的更像是:
if (flag)
//initialize an instance of TempClass with one template
TempClass<string> s("haha");
else
//initialize an instance of TempClass with 2 templates.
TempClass<string, int> s("haha", 5);
有没有办法在不使用另一个新类的情况下做到这一点?
【问题讨论】: