我开始使用模板,我想到的是一个简单的问题,但我无法解决它,也无法找到我能在网上理解的解决方案。
我想要一个模板,它将变量初始化为某个标准值,假设为0,(但如果需要,它可以是不同的东西)。 到目前为止,我写了这个简单的代码:
template <typename T>
void InitVar( T& Var){
Var = T(0);
};
此代码适用于简单数字类型的变量,int,double等...但它不适用于不同类型的变量,如字符串。 我知道问题是T(0)命令,但我不知道如何用更通用的东西替换它。
特别是我感兴趣的是一个适用于标准数字变量和字符串的代码。有人能帮助我吗?
答案 0 :(得分:4)
首先,该分配,而不是初始化。
无论如何,您可以使用值初始化:T()
这将零初始化算术类型或调用类类型的默认构造函数。