链表构造函数
Linked List constructor
我正在尝试为只有一个字段的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;
}
不要设置curr = phead->next
,而是尝试phead->next = curr
您的代码似乎将 curr 的值设置为 phead->next 的值,该值在此代码中永远不会更改。
在 curr 旁边设置 phead-> 将使 phead 列表包含正在 curr 值中创建的节点,从而将 curr 添加到链表中。
我希望这有帮助!
相关文章:
- 在 c++ 中具有向量的双向链表构造函数
- 指针永远不会在链表深层复制构造函数中达到 null
- 复制链表的构造函数
- 如何将深拷贝构造函数实现到链表中?
- C++ - 链表 - 复制构造函数
- 链表复制构造函数 |未定义的行为
- C++复制构造函数链接堆栈
- 为数据缺少默认构造函数的链表创建节点
- 双向链表问题(特别是复制构造函数和删除函数)
- 使用递归的二维链表复制构造函数
- 对链表复制构造函数和赋值运算符使用 copy() 方法
- 获取链表上的"expected ‘)’ before ‘&’ token"到 BST 构造函数签名
- 关于C++中构造函数链接的一些问题
- 对C++中的构造函数链感到困惑
- C++弹出函数链表
- 使用模板的构造函数链接器错误
- Qt移动构造函数链接错误
- 应该在构造函数链中使用移动语义
- 将const引用向下传递到构造函数链中
- 我可以用花括号构造一个链表吗?