为什么下面的代码会产生编译错误?
编辑:我的原始代码不清楚-我已将代码拆分为单独的文件...
第一.h
class First
{
public:
static const char* TEST[];
public:
First();
};
第一个.cpp
const char* First::TEST[] = {"1234", "5678"};
First::First()
{
uint32_t len = sizeof(TEST); // fine
}
确定First
班级内的大小似乎很好,但是......
第二个.h
class Second
{
public:
Second();
};
第二个.cpp
#include "First.h"
Second::Second()
{
uint32_t len = sizeof(First::TEST); // error
uint32_t elements = (sizeof(First::TEST) / sizeof(First::TEST[0])); // error
}
我收到以下错误:'const char *[]': illegal sizeof operand