【发布时间】:2019-03-27 21:20:07
【问题描述】:
我正在尝试初始化一个类变量数组。据我了解,正常的类变量初始化是这样的:
class test
{
public:
static const float f;
};
但是,作为一个数组,突然不行了:
class test
{
public:
static const float f[2];
};
//const float test::f = { 1 ,2};
整个代码应该可以工作,但是我注释掉了第 6 行。在第 4 行,它仍然抛出了
错误 LNK2001 未解析的外部符号“public: static float const * 常量测试::f"
我尝试了指针和动态分配,但两者都不起作用。怎么解决这个错误,第 6 行有什么问题吗?
【问题讨论】:
-
您好像忘记了尺寸。试试
const float test::f[2] = {1 , 2}; -
首先,变量 F 是 const ,表示不能做 f[0] = value 或 f[1] = value ,它是只读变量,所以必须初始化首先,其次,您不能访问像 const float test::f = {1,2} 这样的类 obj 变量,而只能访问 test::{1,2};