当前位置:  开发笔记 > 编程语言 > 正文

如何定义模板类的静态const变量

如何解决《如何定义模板类的静态const变量》经验,为你挑选了1个好方法。

我正在尝试使用预定义的静态常量为向上,向右和向前创建一个向量类,因为它们在所有情况下应该是相同的.应如何定义,甚至可能?

我正在尝试做这样的事情:

template  class vec3
{
public:
    vec3(T x = 0, T y = 0, T z = 0) :
        x(x),
        y(y),
        z(z)
    {
    }

    static const vec3 right;
    static const vec3 up;
    static const vec3 forward;

    T x, y, z;
}

CPP:

#include "vec3.h"

template 
const vec3::right(1, 0, 0);

template 
const vec3::up(0, 1, 0);

template 
const vec3::forward(0, 0, 1);

这会导致语法错误.



1> Jarod42..:

它应该是(全部在标题中(如果你想从定义中拆分声明,你可以使用.inl或.hxx)):

template  class vec3
{
public:
    vec3(T x = 0, T y = 0, T z = 0) :
        x(x),
        y(y),
        z(z)
    {
    }

    static const vec3 right;
    static const vec3 up;
    static const vec3 forward;

    T x, y, z;
};

template  const vec3 vec3::right(1, 0, 0);
template  const vec3 vec3::up(0, 1, 0);
template  const vec3 vec3::forward(0, 0, 1);

演示

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有