Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <vector>
- //override - это ключевое слово в C++, которое используется для указания того,
- //что функция - член производного класса явно переопределяет виртуальную функцию базового класса.
- class publication {
- std::string name_book_;
- double price_;
- public:
- virtual void getdata() {
- std::cout << "Title of the book: " << name_book_ << std::endl;
- std::cout << "Book price: " << price_ << std::endl;
- }
- virtual void setdata() {
- std::cout << "enter the name of the book: " << std::endl;
- std::getline(std::cin, name_book_);
- std::cout << "enter the price: " << std::endl;
- std::cin >> price_;
- }
- };
- class sales {
- double mysales_month_[3];
- public:
- virtual void getdata() {
- for (int i = 0; i < 3; ++i) {
- std::cout << "sold in " << i + 1 << "month: " << mysales_month_[i] << std::endl;
- }
- }
- virtual void setdata() {
- for (int i = 0; i < 3; ++i) {
- std::cout << "number of books sold in" << i + 1 << " month: " << std::endl;
- std::cin >> mysales_month_[i];
- }
- }
- };
- class book : public publication {
- int size_book_;
- public:
- void getdata() {
- std::cout << "Size book: " << size_book_ << std::endl;
- }
- void setdata() {
- std::cout << "enter the number of pages: " << std::endl;
- std::cin >> size_book_;
- std::cin.ignore(); // игнорируем символ новой строки во входном буфере
- }
- };
- class type : public publication, public sales {
- double record_book_;
- book book_;
- public:
- void getdata() override {
- publication::getdata();
- book_.getdata();
- std::cout << "Record book: " << record_book_ << std::endl;
- sales::getdata();
- }
- void setdata() override {
- publication::setdata();
- book_.setdata();
- std::cout << "enter the length of the book(entry): " << std::endl;
- std::cin >> record_book_;
- sales::setdata();
- }
- };
- int main() {
- type book;
- book.setdata();
- book.getdata();
- return 0;
- }
Add Comment
Please, Sign In to add comment