【发布时间】:2016-01-05 09:39:20
【问题描述】:
在编写模板时,我想将变量初始化为数据类型为零或 null 的值。如果我将它设置为 0x00,它会作为任何类型的零/NULL 吗?
例如
这是模板声明
template <class T>
...
T A=0x00;
现在,如果我定义一个类型为 T => std::string 的实例,上述语句将用作 NULL ?
“int”和“unsigned int”呢?对于这两个它都充当“0”?
【问题讨论】:
-
T的默认构造函数会为您处理这些问题。 -
除非
T没有默认构造函数,也就是说。如果T是具有默认构造函数的类类型,T A;将初始化A,但如果T是整数类型,则根本不会初始化A。 -
您当然假设
T类型有某种零。这通常仅适用于数字类型。class Color的零是多少?
标签: c++ variable-initialization