次のコードでコンパイル エラーが発生するのはなぜですか?
編集:元のコードが明確ではありませんでした-コードを別々のファイルに分割しました...
ファースト.h
class First
{
public:
static const char* TEST[];
public:
First();
};
First.cpp
const char* First::TEST[] = {"1234", "5678"};
First::First()
{
uint32_t len = sizeof(TEST); // fine
}
First
クラス内でサイズを決定するのは問題ないようですが...
Second.h
class Second
{
public:
Second();
};
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