很不言自明。该数组是整数类型,其内容是已知且不变的,并且不允许C++ 0x。还需要将其声明为指针。我似乎找不到有效的语法。

Class.hpp中的声明:

static const unsigned char* Msg;

我确实修补了Class.cpp中的东西:
const unsigned char Class::Msg[2] = {0x00, 0x01}; // (type mismatch)
const unsigned char* Class::Msg = new unsigned char[]{0x00, 0x01}; // (no C++0x)

...等等。我还尝试过在构造函数内部进行初始化,这当然是行不通的,因为它是常量。我要的是不可能的吗?

最佳答案

// in foo.h
class Foo {
    static const unsigned char* Msg;
};

// in foo.cpp
static const unsigned char Foo_Msg_data[] = {0x00,0x01};
const unsigned char* Foo::Msg = Foo_Msg_data;

关于c++ - 如何将静态常量数组声明和初始化为类成员?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11367141/

10-12 12:19
查看更多