在我的代码中,我有 int
、bool
、pointer
等等,我也有一些我定义的类型typedef
,我如何管理默认值初始化,就像它发生在带有构造函数的对象中一样?
我想确定
T var;
如果未更改,则始终等于我的默认值,我喜欢在不解析每一行代码并手动更改默认值且不使用预处理器宏的情况下执行此操作。
这可能吗?
对于新的 typedef
是否可以定义默认值?
最佳答案
在 C++11 中,您可以编写 T var{};
将值初始化为默认值。
在 C++03 中,您可以编写一个非 POD 包装器,其默认构造函数将由 T var;
调用:
template<class T>
struct default_initializer{
default_initializer() : value() {}
default_initializer(T const& v) : value(v) {}
T value;
};
// somewhere in code
default_initializer<T> var; // calls default ctor and initializes 'value'
// to its default value
这将允许您安全地默认初始化原始类型、POD 和聚合类型,这些类型通常未被 T var;
声明保留。
关于c++ - 在C++中将特定类型的所有变量初始化为特定的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11493701/