gpt4 book ai didi

c++ - 使用 ostream 从另一个类的结构访问数据

转载 作者:行者123 更新时间:2023-11-30 04:14:25 25 4
gpt4 key购买 nike

我想访问在我的结构类中创建的节点的输出。现在我的代码正在将名称保存到每个节点中。

节点 1:鲍勃、乔、吉尔

节点 2:杰夫、安迪、凯文、路易斯

节点 3:Heather、Andy、Candy

但是,我正在尝试弄清楚如何从 ostream 运算符输出它们

struct node {
node(string value="") {data=value; next=NULL; }

string data;

node *next;
};


class list {

public:
list(int N=0, int value=0);
~list();

friend ostream & operator << (ostream &, const list &);

private:
int N;
node *head;

};


ostream& operator << (ostream & out, const list & list_def)
{
//out << list_def.data;

}

int main(){
list names[3];

cout << names[0];

}

名称被保存在节点中,数据保存每个名称。如您所见,我尝试执行 list_def.data,但它没有输出它们。我觉得它类似于 list_def.node->data,但这也不起作用。

最佳答案

list 类没有data 成员,但是node 类有。您必须访问例如head->data.

或者更确切地说,您可能应该遍历从 head 开始的列表,并打印当前节点 data 成员。喜欢:

for (node* current = head; current != nullptr; current = current->next)
out << current->data;

请注意,您必须在构造函数中初始化 head,否则它将成为未初始化的指针,并在您取消引用时导致未定义的行为。

关于c++ - 使用 ostream 从另一个类的结构访问数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18936364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com