Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Aleks.11
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 4
#1

Создать производные классы - C++

18.11.2009, 13:53. Просмотров 569. Ответов 6
Метки нет (Все метки)


Создать производные классы со своими методами вывода информации на экран (абстрактного класса Библиотека). Производные классы:
1. Электронный ресурс (название, фамилия автора, ссылка, аннотация)
2. Статья (название, фамилия автора, название журнала, его номер и год издания)
3. Книга (название, фамилия автора, год издания, издательство).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2009, 13:53     Создать производные классы
Посмотрите здесь:

Создать иерархию классов Шахматная фигура – абстрактный класс, содержащий поле – цвет. Создать производные классы - C++
Создать иерархию классов Шахматная фигура – абстрактный класс, содержащий поле – цвет. Создать производные классы все фигуры, содержащие...

Класс: Создать производные классы StraightLine, Ellipse, Hyperbola - C++
Создать абстрактный базовый класс Lines с виртуальной функцией f(x). Создать производные классы StraightLine, Ellipse, hyperbola в которых...

производные классы. - C++
Попалось такое Задание: Написать программу используя базовый и производный классы, защищенные члены класса, которая создавала массив...

Производные классы - C++
Всем доброго времени суток! Столкнулся со следующей проблемой: в main создается матрица типа Basic (производный абстрактный класс для...

производные классы - C++
Задание: Разработайте программу на языке С++, использующую наследование. Вариант 18. Создайте базовый класс Complex (комплексное число)...

Указатели на производные классы - C++
Подскажите, как создать массив типа "указатель на базовый класс", который будет содержать указатель указатели на производные...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт С++
8283 / 3502 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
18.11.2009, 14:24     Создать производные классы #2
вот
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
//Абстрактный класс Библиотека
class Library
{
public:
    void Print(){};
};
//Электронный ресурс (название, фамилия автора, ссылка, аннотация)
class ElRes : Library
{
private:
    std::string nazv;
    std::string fio;
    std::string link;
    std::string annot;
public:
    ElRes();
    ElRes(std::string _nazv, std::string _fio, std::string _link, std::string _annot);
    void Print();
 
};
ElRes::ElRes()
{
    nazv = "Неизвестно";
    fio = "Неизвестно";
    link = "Неизвестно";
    annot = "Неизвестно";
}
ElRes::ElRes(std::string _nazv, std::string _fio, std::string _link, std::string _annot)
{
    nazv = _nazv;
    fio = _fio;
    link = _link;
    annot = _annot;
}
void ElRes::Print()
{
    std::cout<<"Электронный ресурс:\nНазвание:\n< "<<nazv<<
        "\nФИО автора:\n< "<<fio<<"\nСсылка:\n< "<<link<<
        "\nАннотация:\n< "<<annot<<std::endl;
}
//Статья (название, фамилия автора, название журнала, его номер и год издания)
class Stat : Library
{
private:
    std::string nazv;
    std::string fio;
    std::string journ;
    int numb;
    int year;
public:
    Stat();
    Stat(std::string _nazv, std::string _fio, std::string _journ, int _numb, int _year);
    void Print();
 
};
Stat::Stat()
{
    nazv = "Неизвестно";
    fio = "Неизвестно";
    journ = "Неизвестно";
    numb = 0;
    year = 0;
}
Stat::Stat(std::string _nazv, std::string _fio, std::string _journ, int _numb, int _year)
{
    nazv = _nazv;
    fio = _fio;
    journ = _journ;
    numb = _numb;
    year = _year;
}
void Stat::Print()
{
    std::cout<<"Статья:\nНазвание:\n< "<<nazv<<
        "\nФИО автора:\n< "<<fio<<"\nЖурнал:\n< "<<journ<<
        "\nНомер:\n< "<<numb<<"\nГод издания:\n< "<<year<<std::endl;
}
//Книга (название, фамилия автора, год издания, издательство).
class Book : Library
{
private:
    std::string nazv;
    std::string fio;
    int year;
    std::string izd;
public:
    Book();
    Book(std::string _nazv, std::string _fio, int _year, std::string _izd);
    void Print();
};
Book::Book()
{
    nazv = "Неизвестно";
    fio = "Неизвестно";
    year = 0;
    izd = "Неизвестно";
}
Book::Book(std::string _nazv, std::string _fio, int _year, std::string _izd)
{
    nazv = _nazv;
    fio = _fio;
    year = _year;
    izd = _izd;
}
void Book::Print()
{
    std::cout<<"Книга:\nНазвание:\n< "<<nazv<<
        "\nФИО автора:\n< "<<fio<<"\nГод издания:\n< "<<year<<
        "\nИздательство:\n< "<<izd<<std::endl;
}
Aleks.11
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 4
18.11.2009, 14:32  [ТС]     Создать производные классы #3
M128K145, Спасибо огромное. Меня зовут Лида, я студентка 3 курса Политеха. Я над этой задачей билась 4 недели. Можно задать наивный вопрос. Вы программист который пишет такие сложные задачи или вы просто имеете готовые шаблоны? В любом случае огромное СПАСИБО. Вы очень умный человек. Спасибо.
Rififi
2338 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
18.11.2009, 14:40     Создать производные классы #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <string>
#include <iostream>
 
struct library
{
    virtual ~library() {};
    virtual void print(std::ostream&) const = 0;
};
 
struct link : public library
{
    std::string name_, author_, url_, annotation_;
    
    virtual void print(std::ostream& o) const
    { o << name_ << author_ << url_ << annotation_; }
};
 
struct article : public library
{
    std::string name_, author_, magazine_;
    unsigned number_, year_;
 
    virtual void print(std::ostream& o) const
    { o << name_ << author_ << magazine_ << number_ << year_; }
};
 
struct book : public library
{
    std::string name_, author_, publisher_;
    unsigned year_;
 
    virtual void print(std::ostream& o) const
    { o << name_ << author_ << publisher_ << year_; }
};
 
template <typename O>
O& operator<<(O& o, const library& l)
{
    l.print(o);
    return o;
}
пример:
library* obj = new book();
std::cout << *obj << endl;
Aleks.11
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 4
18.11.2009, 14:50  [ТС]     Создать производные классы #5
Rififi, Спасибо огромное за помощь.
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
18.11.2009, 16:09     Создать производные классы #6
Цитата Сообщение от Rififi Посмотреть сообщение
virtual void print(std::ostream&) const = 0;
Извините за любопытство: а зачем "= 0" в конце объявления?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2009, 18:16     Создать производные классы
Еще ссылки по теме:

Абстрактные и производные классы С++ - C++
Проблема: Есть базовый класс &quot;Фигура&quot;, и производные: &quot;Точка&quot;, &quot;Круг&quot;, &quot;Прямоугольник&quot;, &quot;Треугольник&quot;. Надо сделать чистую виртуальную...

Абстрактные и производные классы - C++
Создать класс - данные - абстрактный базовый класс. Создать производные классы - данные типа сигнал, данные типа результат обработки и...

Производные классы паблик и приват - C++
Здравствуйте, нужна помощь. Это пример из книги Лафоре ООП С++. Не могу понять почему программа работает, хотя при наследовании классы...

Массив указателей на производные классы - C++
Здравствуйте, есть базовый класс строка mystring class mystring // Опишем базовый класс строки { protected: char *p; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
rangerx
1931 / 1540 / 141
Регистрация: 31.05.2009
Сообщений: 2,908
18.11.2009, 18:16     Создать производные классы #7
Извините за любопытство: а зачем "= 0" в конце объявления?
Чтобы сделать класс абстрактным.
Yandex
Объявления
18.11.2009, 18:16     Создать производные классы
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru