我想在构造函数中用ASCII代码初始化一个静态const char数组,这是我的代码:
class Card
{
public:
Suit(void)
{
static const char *Suit[4] = {0x03, 0x04, 0x05, 0x06}; // here's the problem
static const string *Rank[ 13 ] = {'A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'}; // and here.
}
然而,我收到了很多错误,说明
'初始化':无法从'char'转换为'const std :: string *'
'初始化':无法从'int'转换为'const std :: string *'
请帮帮我!非常感谢你。
答案 0 :(得分:4)
您正在初始化一个字符数组,因此您需要:
static const char Suit[] = {0x03, 0x04, 0x05, 0x06};
static const char Rank[] = {'A', '2', ...};
您正在使用的表单是声明字符串数组,然后使用单个字符串初始化它们。如果你确实希望Rank
是一个字符串数组,那么初始值设定项必须是双引号:
static const char* Rank[] = {"A", "2", ...};
或:
static const std::string Rank[] = {"A", "2", ...};
答案 1 :(得分:0)
字符数组的类型为const char[]
。你有什么,const char*[]
是一个指针数组。