我有一个简单的书籍链接列表,我正在尝试使用此方法打印链接列表的内容
void List::display()const{
Node *newNode = head;
while (newNode != NULL){
cout << "ID: " << newNode->book.getId() << " Name: " << newNode->book.getName()<< endl;
newNode = newNode->next;
}
}
Run Code Online (Sandbox Code Playgroud)
我的Book班级有以下实现:
int Book::getId(){
return id;
}
string Book::getName(){
return name;
}
Run Code Online (Sandbox Code Playgroud)
将Book.h具有以下声明:
class Book{
friend class Node;
friend ostream& operator<<(ostream& output, const Book &book);
public:
Book();
int getId();
string getName();
private:
int id;
string name;
};
Run Code Online (Sandbox Code Playgroud)
让它打印ID这本书很好:
cout << "ID: " << newNode->book.getId()
Run Code Online (Sandbox Code Playgroud)
它的第二部分不起作用:
cout<<" Name: " << newNode->book.getName()<< endl;
Run Code Online (Sandbox Code Playgroud)
我之前在几个不同的链表中尝试过这个,它工作正常,但我不知道这里出了什么问题,
错误是:
错误 1 错误 C2679:二进制“<<”:未找到采用“std::string”类型的右侧操作数的运算符(或没有可接受的转换)