C++ 成员变量默认初始化模板
Iam使用不支持c++11的编译器,该编译器不支持类声明的默认初始化 因为我有一个管理可视化的类,它包含大量bool标志和其他成员,所以我想写一些模板类来执行默认的init 我可以实现如下功能:C++ 成员变量默认初始化模板,c++,C++,Iam使用不支持c++11的编译器,该编译器不支持类声明的默认初始化 因为我有一个管理可视化的类,它包含大量bool标志和其他成员,所以我想写一些模板类来执行默认的init 我可以实现如下功能: template <unsigned int I> class UIntDef{ public: UIntDef(unsigned int d=I):i(d){ cout << "init i="<<d<<endl; } opera
template <unsigned int I>
class UIntDef{
public:
UIntDef(unsigned int d=I):i(d){
cout << "init i="<<d<<endl;
}
operator unsigned int&(){return i;}
unsigned int i;
};
模板
类UIntDef{
公众:
UIntDef(无符号整数d=I):I(d){
cout模板参数列表中的语法错误:
template <typename T, T I>
// ^^^^
模板
// ^^^^
除此之外,代码完全正确-。模板参数列表中的语法错误:
template <typename T, T I>
// ^^^^
模板
// ^^^^
除此之外,代码完全正确-。ahhh,我认为it不起作用,因为第二个参数引用了第一个参数。我没有意识到缺少的“name”啊,我认为it不起作用,因为第二个参数引用了第一个参数。我没有意识到缺少的“name”是什么模板的感觉?使用给定值的默认初始化也有效。并且写入X;
而不是XX(100)
似乎不是一个好的解决方案,因为代码将有多个实例。其意义是在声明时设置默认值,以避免需要额外将它们添加到初始值设定项列表中。模板的意义是什么?使用给定值进行默认初始化也可以。编写X;
而不是XX(100)
似乎不是一个好的解决方案,因为代码将有多个实例。意义在于在声明时设置默认值,以避免需要将它们添加到初始值设定项列表中
template <typename T, T I>
// ^^^^