gpt4 book ai didi

c++ - 打印函数 - 链表 c++

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

我想弄清楚我在使用此 printList 函数时做错了什么。我收到以下编译器错误:

No operator "<<" matches these operands.

函数如下:

void printList(const List& theList)
{
for(Node* i = theList.getFirst(); i != theList.getLast(); ++i)
{
cout << *i << " ";
cout << endl;
}
}

我也有以下内容,

#include "List.h"
#include <iostream>

我认为我的打印功能离基础还很远。谁能指出我正确的方向?

这是我的类,我没有 List::Iterator。你有什么建议?

class List
{
private:
int nodeListTotal;
Node* first;
Node* last;

public:
//Constructor
List();

void push_back(Node*);
void push_front(Node*);
Node* pop_back();
Node* pop_front();
Node* getFirst() const;
Node* getLast() const;
int getListLength() const;
void retrieve(int index, int& dataItem) const;
};

class Node
{
private:
string dataItem;
string dataUnit;
int unitTotal;
Node* next;

public:
//Constructor
Node();

Node(int, string, string);

string getDescription( );
void setDescription(string);

string getQuantityName();
void setQuantityName(string);

int getQuantityNumber();
void setQuantityNumber(int);

Node* getNext( );
void setNext(Node*);
};

最佳答案

你需要重载 operator<<对于节点类型:

std::ostream& operator<<(std:::ostream& os, const Node& node)
{
os << node.getQuantityName() << " " << node.getDescription();
return os;
}

关于c++ - 打印函数 - 链表 c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18050366/

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