Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 1
Регистрация: 17.10.2014
Сообщений: 153
1

Задача с наследованием

22.12.2014, 21:26. Показов 533. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача стоит таким образом:
1.Построить класс
Фильм (со свойствами): название фильма, длительность (кол-во мин), жанр. Реализовать следующие методы класса: вернуть жанр фильма, вернуть длительность фильма, показать всю информацию о фильме.

Построить двух наследников данного класса.
1)Художественный фильм (со своим атрибутом):Фамилия режиссёра фильма и методами: вернуть фамилию режиссера, показать всю информацию о художественном фильме (произвести замещение данного метода с учетом нового атрибута).
2)Документальный фильм (со своим атрибутом):возрастная категория.Выполнить замещение метода печатающие все свойства фильма, с учетом нового атрибута.

В классе Художественный фильм создать специальный закрытый атрибут (и метод печатающий значение данного атрибута), значение которого отражает количество объектов класса Художественный фильм функционирующих в программе.

Вот мой код
файл main
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include "Film.h"
 
using namespace std;
 
int main()
{
    Film A("Forsag", 15, "Gonki");
    HudFilm B("Vojna", 20, "Boevic", "Kostyrko");
    DocFilm C("Stalin", 30, "Doc", 20);
 
    A.AllInfo();
    cout << endl;
    B.AllInfo();
    C.AllInfo();
    system("pause");
 
    return 0;
}
файл Film.h
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
#pragma once
class Film
{
protected:
    char *Title;    //Название фильма
    int Time;       //Длительность фильма в минутах
    char *Genry;    //Жанр фильма
public:
    Film(void);     //Конструктор по умолчанию
    Film(char *, int, char*); //Явный конструктор
    char* GetGenry();//Возвращаем жанр
    int GetTime();  //Возвращаем время
    void AllInfo(); //Показываем всю информацию
    ~Film(void);    //Диструктор
};
 
class HudFilm: public Film
{
 
    char *Surname;  //Фамилия
public:
    HudFilm();      //Конструктор по умолчанию
    HudFilm(char *, int, char *, char*);//Конструктор явный
    char* GetSurname();//Вернуть фамилию
    void AllInfo();     //Показать всю информацию фильма
};
 
class DocFilm: public Film
{
    int VZC; //Возрастная категория
public:
    DocFilm();
    DocFilm(char *, int, char *, int);
    void AllInfo();
    int GetVozrCateg();
};
файл Film.cpp
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#include "Film.h"
#include <iostream>
using namespace std;
 
const int n=30;
 
//КОНСТРУКТОР ПО УМОЛЧАНИЮ
Film::Film(void)
{
    Title = new char[n]; //Название
    Title = "None";
    Genry = new char[n]; //Жанр
    Genry = "None";
    Time = 0;            //Время
}
 
//ЯВНЫЙ КОНСТРУКТОР
Film::Film(char *title, int time, char *genry)
{
    Title = new char[n];
    strcpy(Title,title);
 
    Genry = new char[n];
    strcpy(Genry, genry);
 
    Time = time;
}
 
//ВОЗВРАЩАЕМ ЖАНР ФИЛЬМА
char* Film::GetGenry()
{
    return Genry;
}
 
//ВОЗВРАЩАЕМ ВРЕМЯ ФИЛЬМА
int Film::GetTime()
{
    return Time;
}
 
//ПОКАЗЫВАЕМ ВСЮ ИНФОРМАЦИЮ О ФИЛЬМЕ
void Film::AllInfo()
{
    cout << this->Title << " ";
    cout << this->Time << " ";
    cout << this->Genry << endl;
}
//Диструктор
Film::~Film(void)
{
    delete [] Title;
    delete [] Genry;
}
//////////////////////////////////////////////////////////
 
//Конструктор явный
HudFilm::HudFilm(char *title, int time, char *genry, char *surname)
{
    Title = new char[n];
    strcpy(Title,title);
 
    Genry = new char[n];
    strcpy(Genry, genry);
 
    Surname = new char[n];
    strcpy(Surname, surname);
 
    Time = time;
}
 
HudFilm::HudFilm()
{
    Title = new char[n]; //Название
    Title = "None";
    Genry = new char[n]; //Жанр
    Genry = "None";
    Time = 0;            //Время
    Surname = new char[n]; 
    Surname = "None";   //Фамилия
}
 
char* HudFilm::GetSurname()
{
    return Surname;
}
 
void HudFilm::AllInfo()
{
    cout << Title << " ";
    cout << Time << " ";
    cout << Genry << " ";
    cout << Surname <<  endl;
}
 
 
////////////////////////////////////////
 
DocFilm::DocFilm()
{
    Title = new char[n]; //Название
    Title = "None";
    Genry = new char[n]; //Жанр
    Genry = "None";
    Time = 0;            //Время
    VZC = 18;
}
 
DocFilm::DocFilm(char *title, int time, char *genry, int vzc)
{
    Title = new char[n];
    strcpy(Title,title);
 
    Genry = new char[n];
    strcpy(Genry, genry);
 
    VZC = vzc;
 
    Time = time;
}
 
void DocFilm::AllInfo()
{
    cout << Title << " ";
    cout << Time << " ";
    cout << Genry << " ";
    cout << VZC <<  endl;
}
Что я не знаю как делать:
1)как сделать замещение с новым атрибутом, это для меня потёмки... Сколько раз уже не объясняли, так я и не понял. Скажите, плз, на простом языке, что это такое и зачем оно нужно и как это использовать конкретно в этой программе.
2) Просто скопирую: "В классе Художественный фильм создать специальный закрытый атрибут (и метод печатающий значение данного атрибута), значение которого отражает количество объектов класса Художественный фильм функционирующих в программе." - вот это тоже не знаю как сделать..

Подскажите, заранее буду благодарен!)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.12.2014, 21:26
Ответы с готовыми решениями:

Задача с шаблонами и наследованием
Ребята, есть такая проблема.. Предположим, что у нас есть класс Image (не шаблонный). И есть...

Задача с наследованием, прошу помощи
Разработать следующую структуру классов. Создать класс MyList, который реализует функции...

Разобраться с наследованием
сорри, я шарп 2 раз вижу, разбираюсь. накидал форму с данными через mysql connector/net , накидал...

Работа с наследованием
Вопрос вот в чем: есть класс Animal и его наследники Domestic и Wild. Есть массив объектов Animal и...

0
22.12.2014, 21:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.12.2014, 21:26
Помогаю со студенческими работами здесь

Проблема с наследованием
Здравствуйте, уважаемые Все! Столкнулся со следующей проблемой. Необходимо реализовать паттерн...

Неясности с наследованием (C#)
Добрый день. Никак не могу разобраться с некоторыми элементами наследования в C#. Вырезка из...

Сложности с наследованием
В общем есть класс простые дроби(Rational_class), состоят только из числителя и знаменателя, на нём...

Проблемы с наследованием
Выпадает такая ошибка Error 3 error C2259: 'Operator' : cannot instantiate abstract...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru