我想用向上,向右和向前的预定义静态常量做一个向量类,因为这些应该在所有情况下都是相同的。这应该如何定义,甚至有可能?如何定义一个模板类的静态常量变量
我试图做这样的事情:
template <class T> class vec3
{
public:
vec3(T x = 0, T y = 0, T z = 0) :
x(x),
y(y),
z(z)
{
}
static const vec3<T> right;
static const vec3<T> up;
static const vec3<T> forward;
T x, y, z;
}
CPP:
#include "vec3.h"
template <typename T>
const vec3<T>::right(1, 0, 0);
template <typename T>
const vec3<T>::up(0, 1, 0);
template <typename T>
const vec3<T>::forward(0, 0, 1);
这将导致一个语法错误。
它应该是'静const vec3 right;'在课堂上。 – Jarod42
顺便说一句,我怀疑你想在.cpp中定义,因为它继续依赖于'T'。 – Jarod42
@ Jarod42它将如何在标题中定义?如果我尝试使用'= vec3(1,0,0);''vec3 :: right':带类内初始值设定项的静态数据成员必须具有非易失性const整型类型' –
Duckdoom5