基本上我必须动态地将不同的电影存储在异构集合中,我已经拥有不同的电影类型(纪录片和家庭)和“掩盖”差异的类(电影),因此可以将其存储在一个地方(记录)。我的 addMovie(Movie *mov) 函数有问题。我不知道如何开始。
我的记录类:
class Record {
String name;
size_t siz;
Movie* movies;
Record(const Record&);
Record& operator=(const Record&);
public:
Record(String n): name(n), siz(0) {movies = new Movie[siz+1];}
void addMovie (Movie *mov);
void removeMovie (Movie *mov);
void listMovies();
void searchMovie (const char* title);
void emptyRecord();
void writeFile();
void readFile();
virtual ~Record() {emptyRecord();}
};
电影类:
class Movie {
protected:
String name;
String release;
String genre;
public:
Movie(){}
Movie(String n, String r, String g): name(n), release(r), genre(g) {}
virtual void write() {}
virtual ~Movie() {}
};
纪录片类:(family 类类似,它存储一个 int age_restriction 和 write 函数写入)
class Documentary: public Movie {
String description;
public:
Documentary(String n, String r, String d = "Add description up to 50 characters!"): Movie(n,r,"Documentary"), description(d) {}
String getDescription () const {return description;}
void setDescription (String newdescr);
void write();
virtual ~Documentary(){}
};
(PS:如果您有动态异构商店的任何良好来源,我会全力以赴)