C++简单构造函数问题

Dax*_*rax -1 c++ constructor

我正在尝试创建一个玩家手中的课程(在前面的纸牌游戏中).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)

Lig*_*ica 5

你的问题是悬空指针.

更广泛的问题是使用指针.只是不要这样做.存储一组实际 Card对象.

  • @DaxDurax:[这完全是废话](https://ideone.com/giMXoX).请举例说明您所看到的内容,以便我可以联系作者并将其直接设置并要求他们修改材料.另外,从这个适当的C++书籍列表中获取[一本适当的C++书籍](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list),其中没有一本会这样做令人发指的谎言. (3认同)
  • 更好的是,使用`std :: vector <Card>`.可变长度?校验.容易使用?校验.不用担心内存管理?校验.这就像人们*为开始实施纸牌游戏的程序员发明了*`std :: vector`! (2认同)