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

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

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

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

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

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

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


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

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

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

p.s. Зарание спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.01.2012, 19:14
Ответы с готовыми решениями:

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

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

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

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

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

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

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

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

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

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

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

Добавлено через 13 минут
greeezz, спасибо, то что я и имел ввиду.
1
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.01.2012, 11:50 27
Цитата Сообщение от dimcoder Посмотреть сообщение
Я просто не вижу смысла использования protected
Да вы правы. К сожалению, я не до конца прочитал задание. Мои извинения.
0
08.01.2012, 11:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.01.2012, 11:50
Помогаю со студенческими работами здесь

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

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

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

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

Возможно ли создание объекта шаблонного класса в функции этого класса?
Доброго времени суток, уважаемые форумчане :) Мне по лабам задали задание - реализовать шаблон...

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


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

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