我试图为Deck
类创建一个只有一个字段的构造函数:指向node
类对象的指针。 node
有两个字段,一个卡对象和一个指向另一个节点(链表)的指针。
我试图使用这种构造来构建一副牌,但是当我打印它时,它只显示一张牌,让我相信构造函数不能正常工作。
我的打印方法运行正常,我已经用其他示例对其进行了测试。我故意用相同的卡片开始两次套牌,因为我将在以后删除它。
Deck::Deck(){
node* phead;
phead = new node(Card("A","Heart"));
node* curr;
node* next;
curr = phead->next;
string suits[4] {"Heart", "Spade", "Club", "Diamond"};
string values[13] {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
for(int i = 0; i < 4; i++){
for(int j = 0; j < 13; j++){
curr = new node();
curr->card = Card(values[j], suits[i]);
next = curr->next;
curr = next;
}
}
curr=NULL;
deck = phead;
}
答案 0 :(得分:1)
尝试curr = phead->next
phead->next = curr
您的代码似乎是将curr的值设置为phead-&gt; next的值,在此代码中永远不会更改。
在curr旁边设置phead-&gt;将使得phead列表包含在curr值中创建的节点,将curr添加到链接列表中。
我希望这有帮助!