具有静态类成员的 C++ 模板类

标签 c++ class templates compiler-errors

我是模板编程的新手。我有一个 vector 类,我正在尝试对其进行模板化,其中包含与父类相同的静态成员:

template<typename T>
class Vector
{
   // vector stuff

   static const Vector c_NullVector;
}

我正在尝试初始化这个静态成员,但只有在我明确声明类型的情况下才能成功,例如:

const Vector2d<float> Vector2d<float>::c_Zero(0.0);

如果可能的话,我宁愿不必初始化每个类型。这可能吗?

最佳答案

您必须提供如下定义:

template<typename T>
class Vector
{
   // vector stuff

   static const Vector c_NullVector;
}

template <typename T>
const Vector<T> Vector<T>::c_NullVector;

如果你能想出一个通用的初始化,你可以把它放在定义中。

关于具有静态类成员的 C++ 模板类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16586062/

相关文章:

c++ - 将 define int 作为参数传递给函数

c++ - 在 C++ 中打印十六进制代码,但只打印 "g"

C++ 数组与指针

python - 对模型中的多个数据帧求和

C++ 类继承和模板

C++,静态数组,指针,长度

c# - 2 "Dynamic"div 之间的 "Static"div [CSS][ASP.NET]

c++ - 必须是非静态成员函数

c++ - 具有模板化构造函数(其他类型)的模板化类

c++ - 模板化循环继承