我有一个与 C++ 类成员初始化有关的问题。以下代码说明了我的问题:
class ABCD
{
public:
ABCD():ObjNum(3){};
~ABCD() {};
static const unsigned char getByte[8];
const int ObjNum;
};
const unsigned char ABCD::getByte[8] = {
'a','b','c','d','e','f','g','h'
};
int main()
{
ABCD test;
cout<<test.getByte[3]<<endl;
return 0;
}
上面的代码工作得很好,但是现在如果我不将 getByte[8] 设置为静态,我怎么能初始化这个类呢?我尝试过这种方式,但失败了:
class ABCD
{
public:
ABCD():ObjNum(3),getByte('a','b','c','d','e','f','g','h')
{
};
~ABCD() {};
const unsigned char getByte[8];
const int ObjNum;
};
int main()
{
ABCD test;
cout<<test.getByte[3]<<endl;
return 0;
}
我得到的错误如下:
error C2536: 'ABCD::ABCD::getByte' : cannot specify explicit initializer for arrays
我了解我收到错误的原因,但我不知道如何解决它。任何的想法?谢谢!