Untitled
unknown
plain_text
2 years ago
2.0 kB
19
Indexable
#include <iostream>
#include <string>
#include <vector>
class Movie {
protected:
std::string title;
int year;
std::string genre;
public:
Movie(const std::string& title, int year, const std::string& genre)
: title(title), year(year), genre(genre) {}
virtual void displayInfo() const {
std::cout << "Title: " << title << std::endl;
std::cout << "Year: " << year << std::endl;
std::cout << "Genre: " << genre << std::endl;
}
virtual void play() const = 0;
};
class CDMovie : public Movie {
public:
CDMovie(const std::string& title, int year, const std::string& genre)
: Movie(title, year, genre) {}
void displayInfo() const override {
std::cout << "CD Movie:" << std::endl;
Movie::displayInfo();
}
void play() const override {
std::cout << "Playing CD..." << std::endl;
}
void refer() const {
std::cout << "Referencing CD..." << std::endl;
}
void lend() const {
std::cout << "Lending CD..." << std::endl;
}
};
class WebMovie : public Movie {
public:
WebMovie(const std::string& title, int year, const std::string& genre)
: Movie(title, year, genre) {}
void displayInfo() const override {
std::cout << "Web Movie:" << std::endl;
Movie::displayInfo();
}
void play() const override {
std::cout << "Streaming online..." << std::endl;
}
void buy() const {
std::cout << "Buying online movie..." << std::endl;
}
};
int main() {
CDMovie cdMovie("Inception", 2010, "Science Fiction");
WebMovie webMovie("The Shawshank Redemption", 1994, "Drama");
std::vector<Movie*> movies;
movies.push_back(&cdMovie);
movies.push_back(&webMovie);
for (const auto& movie : movies) {
movie->displayInfo();
movie->play();
std::cout << std::endl;
}
return 0;
}Editor is loading...
Leave a Comment