Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/34: Рейтинг темы: голосов - 34, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 07.01.2012
Сообщений: 9

Создание класса "Фильм"

07.01.2012, 19:14. Показов 7096. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста!!!

Нужно сделать следующее:

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

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


3.Класс
Документальный фильм (со своим атрибутом):
возрастная категория.
Выполнить замещение метода печатающие все свойства фильма, с учетом нового атрибута.

Вроде построил класс (для 1 "фильмы"), но не могу понять как действует конструктор и деструктор
и методы класа тоже понял расплывчато.

Помогите хотябы с одним классом, чтобы я понял как это все работае.

p.s. Зарание спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.01.2012, 19:14
Ответы с готовыми решениями:

Создание класса "Фильм"
Здравствуйте,сразу хочу сказать что увлекаюсь C++, а C# мне вообще не интересен.Но задали вот такое вот задание: Создайте класс фильм. ...

Ищу фильм найти фильм
Привет, помогите найти фильм. Помню его ещё давно смотрел, может год 2012 или раньше. Что помню: Группа мужиков приходит в какой-то дом,...

Создание экземпляра класса-наследника для переменной с типом базового класса
Подскажите чайнику как создается экземпляр класса BC BaseClass BC = new DerivedClass(); Вопрос: BC - это экземпляр класса BaseClass...

26
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.01.2012, 10:27
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от dimcoder Посмотреть сообщение
Это нарушение инкапсуляции.
Не смертельно. Непосредственно через объект все равно нет доступа.

Цитата Сообщение от dimcoder Посмотреть сообщение
Я весь внимания.
Создайте 2 класса, в один поместите экземпляр другого. Так сложно? Но так никто не делает, потому что пришось бы 2 раза объявлять одни и те-же функции для доступа к приватным.

А теперь представьте, что вам понадобилось в классе-наследнике изменить приватную переменную базового класса. Что вы предпочтете, объявить ее в protected в базовом, или в производном писать var.setNum(var.getNum() * var.getNum())? А если это не одна переменная?
0
Полярный
 Аватар для dimcoder
477 / 449 / 158
Регистрация: 11.09.2011
Сообщений: 1,156
08.01.2012, 10:44
Цитата Сообщение от soon Посмотреть сообщение
понадобилось в классе-наследнике изменить приватную переменную базового класса.
Для этого существует интерфейс класса - функции-элементы. Пример - 20 пост, 107 строка кода. А если надо просто изменить закрытую переменную и не получается через интерфейс, значит вы это не сделаете никак через дочерний класс. Если я ошибаюсь, приведите пример пожалуйста.

Добавлено через 1 минуту
Цитата Сообщение от soon Посмотреть сообщение
Создайте 2 класса, в один поместите экземпляр другого. Так сложно? Но так никто не делает, потому что пришось бы 2 раза объявлять одни и те-же функции для доступа к приватным.
Не могу не согласиться, но раннее вы написали:
Цитата Сообщение от soon Посмотреть сообщение
С тем же успехом можно создать в новом классе экземпляр "базового" и через него работать.
1
278 / 174 / 21
Регистрация: 10.07.2011
Сообщений: 441
08.01.2012, 11:04
dimcoder, soon, Простите что вмешиваюсь, вы зачем путаете мухи с котлетами? Включение объектов другого класса в качестве членов класса называется композицией или агрегированием. Это вообще никак нельзя даже сравнивать с наследованием потому что нет ничего общего. has-a relationship не есть is-a relationship
Одно для одних задач другое для других. Все зависит от архитектуры которую требуется создать для решения задачи.
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.01.2012, 11:10
Я и не отрицал, что так будет работать. Но почему ArtFilm не может видеть name, janre, length напрямую? Ведь по сути, они принадлежат ему.

Цитата Сообщение от dimcoder Посмотреть сообщение
Если я ошибаюсь, приведите пример пожалуйста.
Не ошибаетесь, доступ к приватным данным есть только у класса.

Цитата Сообщение от soon
С тем же успехом можно создать в новом классе экземпляр "базового" и через него работать.
Я имел в виду, что кроме "копирования" кода ничего не изменится. Мои извинения, если я ввел вас этим в заблуждение.

И да, моя вина, не сказал раньше. Все что было мною сказано относилось в большей степени к данному заданию. Я действительно не вижу смысла использовать в классе-наследнике set/get функции базы(если их вдруг потребуется использовать в самом классе), когда можно просто сделать их protected.
0
278 / 174 / 21
Регистрация: 10.07.2011
Сообщений: 441
08.01.2012, 11:19
Цитата Сообщение от soon Посмотреть сообщение
Я действительно не вижу смысла использовать в классе-наследнике set/get функции базы
Работа через public get и set методы обеспечит вам как минимум:
1 - обеспечить реализацию дочерних классов вне зависимости от возможных изменений базового класса, т.к. public методы для наследников фактически являются интерфейсом. Вы можете изменять родительский класс как угодно и не потребуется ничего менять в наследниках
2 - возможность провести необходимые проверки чтобы наследники не могли сохранить не валидные данные в поля родительского класса.
2
Полярный
 Аватар для dimcoder
477 / 449 / 158
Регистрация: 11.09.2011
Сообщений: 1,156
08.01.2012, 11:49
Цитата Сообщение от soon Посмотреть сообщение
Но почему ArtFilm не может видеть name, janre, length напрямую?
Если он их видит напрямую, значит он их может изменять. А зачем ему их изменять, если всю работу делает за него базовый класс? + Базовый класс предоставляет функции get, которые прекрасно выполняют свою роль. Я просто не вижу смысла использования protected. Как бы вы описали дочерний класс использую этот метод с protected?
Соглашусь с тем, что может я и зря описал set'ы. Этого не было в задании. Но get'ы были в задании, и я их успешно использовал в дочернем классе.

Добавлено через 13 минут
greeezz, спасибо, то что я и имел ввиду.
1
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.01.2012, 11:50
Цитата Сообщение от dimcoder Посмотреть сообщение
Я просто не вижу смысла использования protected
Да вы правы. К сожалению, я не до конца прочитал задание. Мои извинения.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.01.2012, 11:50

Подскажите пожалуйста, программа на создание класса и переопределение функций класса Object
Реализовать класс множество целых чисел, содержащий функции добавления и удаления элемента, упорядочивания множества по возрастанию,...

Создание объекта класса с полем являющимся объектом другого класса
Bill a; cin>>a;//тут я ввел с помощью перегруженного оператора ElementSpiska c; //поля у Spiska(Bill A,int,string,int) ...

Создание своего класса кнопки с использованием наследования от класса UserControl
Ребят, помогите, такая проблема: создаю класс MyButton в C# при помощи наследования от класса UserControl и в классе MyButton переопределяю...

Явное создание экземпляра класса и явная специализация шаблона класса
Всем добрый день! Не могу разобраться - эти две технологии дают один и тот же результат? В каких случаях применять одно и другое?...

Создание указателя типа базового класса на экземпляр производного класса
Добрый день! Иногда видел коды, где создавался указатель типа базового класса на объект класса - наследника, для чего это может применяться?


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru