gpt4 book ai didi

c++ - 在复制构造函数中设置嵌套在类中的结构变量

转载 作者:太空宇宙 更新时间:2023-11-04 13:32:49 26 4
gpt4 key购买 nike

我在弄清楚如何编写复制构造函数时遇到了麻烦。正如您在下面看到的,我们有一个类,其中嵌套了一个结构,用于链接节点包含数据。我不能使用成员赋值来复制 DynIntStack,因为 StackNode 结构中的指针最终将指向同一个对象。

不幸的是,我不知道如何编写构造函数,以便将新 StackNode 中的值设置为等于我传递给构造函数的 DynIntStack 中 StackNode 的值。

我明白我想在这里做什么,我只是不知道如何正确地写出来。

class DynIntStack
{
private:
// Structure for stack nodes
struct StackNode
{
int value; // Value in the node
StackNode *next; // Pointer to the next node
};

StackNode *top; // Pointer to the stack top

public:
// Constructor
DynIntStack()
{
top = NULL;
}
// copy constructor
DynIntStack(DynIntStack &obj)
{
DynIntStack::StackNode value = obj::StackNode.value;
DynIntStack::StackNode next = new StackNode;
}

最佳答案

尝试以下操作

DynIntStack( DynIntStack &obj ) : top( nullptr )
{
StackNode **last = ⊤

for ( StackNode *current = obj.top; current; current = current->next )
{
*last = new StackNode { current->value, nullptr };
last = &( *last )->next;
}
}

如果你的编译器不支持这种形式的new运算符

*last = new StackNode { current->value, nullptr };

什么时候可以用语句替换它

*last = new StackNode;
( *last )->value = current->value;
( *last )->next = nullptr; // or NULL

关于c++ - 在复制构造函数中设置嵌套在类中的结构变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30810514/

26 4 0
文章推荐: css - 插件 css 被主题覆盖并损坏插件布局
文章推荐: html - 在深入研究 CSS 之前,您需要对 HTML 了解多少?
文章推荐: html - 仅用于索引页的全 Angular 图像
文章推荐: html - 让整个
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com