我正在尝试创建一个玩家手中的课程(在前面的纸牌游戏中).draw方法将绘制另一张卡,showHand方法应显示手中的当前卡.我试图在构造函数中初始化指针数组,但是如何做到这一点(我相信我的问题源于此).尝试现在注释掉了这个 - > jon = {}; 给出了这个错误:"错误:分配''到'卡*[12]'的不兼容类型"
***目前在showHand中如果我只是尝试cout jon [i] - > getRank(),就会弹出一堆废话; 但Draw方法效果很好.
class myHand{
public:
myHand(){
this->size=0;
//this->jon={};
}
void Draw(Card anyCard) {
if(size>11) {
cout<<"You can only have a maximum of 12 cards in your hand at a time"<<endl;
return;
}
jon[size]=&anyCard;
cout<<"HERE IS ANYCRD:"<<jon[size]->getRank()<<jon[size]->getSuit()<<endl;
size++;
}
void showHand() {
//DOESNT WORK HERE
}
void Place(Card* anyCard) {
}
private:
int size;
Card* jon[12];
};
Run Code Online (Sandbox Code Playgroud)
你的问题是悬空指针.
更广泛的问题是使用指针.只是不要这样做.存储一组实际 Card对象.