class Book
{
string title;
int category;
public:
Book(const string& abook, int num);
string getTitle() const;
int getCategory() const;
friend ostream& operator<<(ostream& os, const Book& abook);
friend istream& operator>>(istream& is, Book& abook);
};
class Reader // base class
{
private:
string reader_name;
vector<Book> bookLists;
public:
string showname() const;
void add(const Book& abook); // organize book list
friend ostream& operator<<(ostream& os, const Reader& read_name);
friend istream& operator>>(istream& is, Reader& read_name);
};
class fantasyReader : public Reader { };
class horrorReader : public Reader { };
class scienceReader : public Reader { } ;
class mysteryReader : public Reader { };
我有两个给定的文本文件。
1)Reader.txt < ---包含读者姓名和类别
例如:
大卫< - 读者的名字
- 大卫是梦幻读者
C++重载运算符<<和运算符>>
2)Book.txt < ----包含本书的标题和类别
对于离
里迪克< - 书的标题
- 书的类别是幻想
在主函数中,指向Reader的obj的指针数组指向每个dervied类;
ex
Reader *obj[10];
int pos =0;
obj[pos++] = new fantasyReader();
主要目标是组织本书的名单,并放入相应类别和相应的阅读器
,并写入到一个新的文本文件。
ex。
-David-
里迪克
-John-
乌鸦
我的问题
我不知道应该是内部操作者< <和运营商的什么>>
适用于课本及课本阅读器
您应该尝试比提出的解决方案更详细地解释问题。例如,'main'中的创建或读者看起来可疑,如果给定类型的书籍有多个读者,书籍如何与读者相关?另一件可疑的事情是读者的类型是用对象的类型编码的,但派生类型不会向基类添加任何东西......空的子类不是那么常见。 – 2011-05-29 12:59:14