当我尝试用面值和花色的纸牌结构填充我的牌组时,出现上述错误。有人对我做错了什么有什么建议吗?
#include <iostream>
#include <cstdlib>
#include <ctime>
#define CARDS 52
#define FACES 13
#define SUITS 4
using namespace std;
typedef struct card
{
char * face;
char * suit;
}Card;
void fillDeck(Card * const wDeck, const char *wFace[], const char *wSuit[]);
void shuffle(Card * const wDeck);
void deal(const Card * const wDeck);
int main(void)
{
Card deck [CARDS];
const char * face[] = {"Ace", "Two", "Three", "Four", "Five",
"Six", "Seven", "Eight", "Nine", "Ten",
"Jack", "Queen", "King"};
const char * suit[] = {"Hearts", "Diamonds", "Clubs", "Spades"};
srand(time(NULL));
fillDeck(deck, face, suit);
shuffle(deck);
deal(deck);
}
void fillDeck(Card * wDeck, const char * wFace[], const char * wSuit[])
{
int i;
for (i = 0; i< CARDS; i++)
{
wDeck[i].face = wFace[i % FACES];
wDeck[i].suit = wSuit[i / FACES];
}
}
最佳答案
wDeck[i].face = wFace[i % FACES];
突击测试:
问:什么是wDeck
?
答:这是一个Card
类实例。
问:它的“面子”成员是什么?
答:这是一个char *
。
问:WFace
数组中有什么?
A: const char *
s.
问:为什么在 C++ 中,不能将指针分配给常量对象,分配给指向可变(非常量)对象的指针?
A:因为常量对象是常量。但是,如果您有一个指向它的指针,并且将该指针复制到一个不同的可变指针,这意味着您可以使用不同的可变指针修改常量值。
现在,你现在试着回答你自己的问题怎么样?
关于c++ - 我很困惑为什么我的 fillDeck 函数说, "assigning to ' char *' from incompatible type ' const char *”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36440546/