Создать иерархию

240
05 мая 2022, 19:50

Тема наследование. Задача -Разработать иерархическую структуру классов для обработки данных. Класс Печатное издание содержит данные класса: тип_издания (книга, журнал и т.д.), конструктор, операцию: PrintInfo, которая распечатывает. тип_издания Производный класс: Книга содержит поле name, цена и операцию PrintInfo, которая распечатывает данные базового и производного класса. Напишите главную часть программы, в которой объявите объекты для Книга и для каждого объекта вызовите PrintInfo. Не понятно как это все оформить, вот примерный код проверьте правильно ли, или как то по другому надо? не до конца понял условие и как должен выглядеть код Мой код :

#include <iostream>
using namespace std;
class pechat
{
public:
    pechat();
protected:
    char type[10];
    void printinfo();
};
class kniga : pechat
{
protected:
    char name[10];
    int price;
public:
    kniga();
    void PrintInfo();
};
pechat::pechat()
{
    cout << "Enter type:" << endl;
    cin >> type;
}
kniga::kniga()
{
    cout << "Enter  name:" << endl;
    cin >> name;
    cout << "Enter price:" << endl;
    cin >> price;
}
void pechat::printinfo()
{
    cout << type << endl;
}
void kniga::PrintInfo()
{
    cout << "Тип " << type << endl;
    cout <<"Имя " << name << endl;
    cout  <<"Цена "<< price<<endl;
}
int main()
{
    setlocale(LC_ALL, "Rus");
    kniga V;
    cout << "-----------------------------------------------------------------------" << endl;
    V.PrintInfo();
    system("pause");
}
Answer 1

Думаю, что от Вас хотят примерно это:

#include <iostream>
#include <string>
class PrintEdition
{
public:  
    PrintEdition(const std::string& type);
    virtual void printInfo() const = 0;
private:
    std::string type_;
};
class Book : public PrintEdition
{
public:
    Book(const std::string& title, const double price);
    virtual void printInfo() const;
private:
    std::string title_;
    double price_;
};
PrintEdition::PrintEdition(const std::string& type)
    : type_(type) {}
void PrintEdition::printInfo() const
{
    std::cout << "Type: " << type_ << std::endl;
}
Book::Book(const std::string& title, const double price)
    : PrintEdition("Book"), title_(title), price_(price) {}
void Book::printInfo() const
{
    PrintEdition::printInfo();
    std::cout << "Title: " << title_ << std::endl;
    std::cout << "Price: $" << price_ << std::endl;
}
int main()
{
    Book book("The Old Man and the Sea", 19.99);
    book.printInfo();
    return 0;
}

Изучайте!

READ ALSO
Qt, потоки и объекты. Как правильно?

Qt, потоки и объекты. Как правильно?

Я много читал о том, как работать с потоками в QtКто-то наследуется от QThread и переопределяет void run();, кто-то наследует класс worker от QObject, связывает...

255
проблема в подсчёте слов

проблема в подсчёте слов

Есть код который подсчитывает кол-во символов и слов в переменной $textС подсчётом символов всё хорошо , но с подсчётом слов есть один баг(фича)

135
Как реализовать подсчёт количества символов текстового файла?

Как реализовать подсчёт количества символов текстового файла?

Необходимо сделать подсчёт количества символов в текстовом файле, а затем рассчитать примерное количество времени для прочтения текстаВсё...

294