C++ 在类模板中定义静态数组

C++ 在类模板中定义静态数组,c++,arrays,templates,static,definition,C++,Arrays,Templates,Static,Definition,我在类模板中有一个静态数组。链接器抱怨一个未定义的符号,即使在应用了我在网上看到的提示后,我也不知道出了什么问题 标题 模板 福班 { 私人: 静态常数int Size=N1*N2; 公众: //东西 私人: 静态浮动mArray[大小]; } CPP 模板 float Foo::mArray[size]={0}; 链接器抱怨没有定义Foo::mArray。当我将定义移动到头文件时,我将它编译(并链接),但我知道这对于静态来说是一种糟糕的做法。这里最好的方法是什么 干杯与几乎所有其他模板-y

我在类模板中有一个静态数组。链接器抱怨一个未定义的符号,即使在应用了我在网上看到的提示后,我也不知道出了什么问题

标题

模板
福班
{
私人:
静态常数int Size=N1*N2;
公众:
//东西
私人:
静态浮动mArray[大小];
}
CPP

模板
float Foo::mArray[size]={0};
链接器抱怨没有定义Foo::mArray。当我将定义移动到头文件时,我将它编译(并链接),但我知道这对于静态来说是一种糟糕的做法。这里最好的方法是什么


干杯

与几乎所有其他模板-y一样,类模板的静态数据成员的定义需要在所有翻译单元中都可以使用,换句话说,将其放在头文件中。编译器+链接器需要在没有多个定义错误的情况下工作。

与几乎所有其他的template-y一样,类模板的静态数据成员的定义需要在所有翻译单元中都可以使用,换句话说,将其放在头文件中。编译器+链接器需要在没有多个定义错误的情况下工作。

@πάνταῥεῖ 我不太确定这个重复的问题——没有一个答案提到了静态数据成员,而且规则也不适用于他们。尤其是通常情况下,将静态数据成员定义放入头文件会导致链接器错误。@Angew嗯,模板类的
static
类成员在dupe中提到的规则和解决方案方面并不特别。@πάνταῥεῖ 我不太确定这个重复的问题——没有一个答案提到了静态数据成员,而且规则也不适用于他们。尤其是通常情况下,将静态数据成员定义放入头文件会导致链接器错误。@Angew嗯,模板类的
静态
类成员在dupe中提到的规则和解决方案方面没有任何特殊之处。