C ++输入重载卡在while循环中

时间:2015-03-21 15:53:54

标签: c++ overloading operator-keyword

所以基本上在C ++中我试图使用运算符重载将多个对象输入到Vector中。在我的main()中,我有一个while循环,它从文本文件中读取书籍,然后将它们存储在以下字符串中:

 String name, title, pages, classcode, status;

然后我去创建我的Book对象:

Book b(name,title pages,classcode, status);

执行此操作后,我使用cin通过运算符重载将对象输入到向量中。

cin >> b;

我的重载函数如下所示:

istream &operator>>( istream  &input, Book &b )
  { 


input >>  b.classCode;
input >> b.author;
input >> b.title;
input >> b.status;
input >>  b.numPages;


 return input;
 }      

我正在尝试使用运算符重载将对象存储到向量中,但每次运行程序时它都只存储一个Book对象。

1 个答案:

答案 0 :(得分:2)

要在Book中存储std::vector<Book>的多个实例,您可以编写以下代码:

std::vector<Book> v;
Book b;
while (std::cin >> b)
    v.push_back(b);