如何使用c ++中的for循环在矢量中输出所有对象

问题描述 投票:-1回答:1

[C0类]构造了BookLibrary类对象的向量。任务是将一些“书”(BookInfo类的对象)添加到向量中并将其打印出来。由于某些原因,常规的BookInfo循环无法正常工作。这是Savitch教科书“用C ++解决问题”中的一项家庭作业项目。

这里是代码:

for(unsigned int i = 0; i < vector.size(); i++) cout << vector[i] << endl;

在最后一行的#include <iostream> #include <string> #include <vector> using namespace std; class BookInfo { public: BookInfo(string newAuthor, string newTitle); BookInfo(string newTitle); string getName(); string getAuthor(); string getTitle(); private: string author; string title; }; class BookLibrary { public: BookLibrary(); BookLibrary(vector<BookInfo> newLibrary); void add(BookInfo newBook); void size(); void printInfo(); private: vector<BookInfo> library; }; int main() { BookLibrary library1; BookInfo book1("Michael Krichton", "Jurassic Park"); BookInfo book2("War and Peace"), book3("Valter Savitch", "Programming in C++"); library1.add(book1); library1.add(book2); library1.add(book3); library1.size(); library1.printInfo(); return 0; } BookInfo::BookInfo(string newAuthor, string newTitle) { author = newAuthor; title = newTitle; } BookInfo::BookInfo(string newTitle) : title(newTitle), author("unknown") {} string BookInfo::getName() { return (author + " " + title); } string BookInfo::getAuthor() { return author; } string BookInfo::getTitle() { return title; } BookLibrary::BookLibrary() {} BookLibrary::BookLibrary(vector<BookInfo> newLibrary) { library = newLibrary; } void BookLibrary::add(BookInfo newBook) { library.push_back(newBook); } void BookLibrary::size() { cout << library.size(); } void BookLibrary::printInfo() { for (unsigned int i = 0; i < library.size(); i++) cout << library[i] << endl; } 下划线。

c++ object vector
1个回答
0
投票

您需要为cout <<定义一个operator<<,例如:

BookInfo
© www.soinside.com 2019 - 2024. All rights reserved.