我正在尝试写一堂课作为练习,并具有以下内容:
template <class Foo>
class Bar
{
protected:
Foo _x,_y,_z;
public:
Bar(Foo x, Foo y, Foo z) {_x=x; _y=y; _z=z;};
Bar() {_x=0; _y=0; _z=0;};
static const Bar<Foo> X;
};
我想将X
初始化为(0,1,0)
,但不知道如何执行。我想声明X =(0,1,0)
就像在程序开始时声明#define pi = 3.142
一样。我应该如何去做?
您所做的很好,但是由于没有为X
提供任何存储空间,因此可能会出现链接器错误。您需要这样做:
从类中删除静态声明: