我想用向上,向右和向前的預定義靜態常量做一個向量類,因爲這些應該在所有情況下都是相同的。這應該如何定義,甚至有可能?如何定義一個模板類的靜態常量變量
我試圖做這樣的事情:
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