Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
Gambit_d.s
0 / 0 / 0
Регистрация: 07.01.2012
Сообщений: 9
#1

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

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

Помогите, пожалуйста!!!

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

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

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


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

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

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

p.s. Зарание спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2012, 19:14
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Создание класса "Фильм" (C++):

Создание объекта класса сразу после его описания (между "}" и ";") - C++
Пишу проект с дюжиной хедеров и десятком cpp-шников. Мне нужны пара объектов класса А, которые должны существовать на протяжении всей...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно". Я так...

Объяснить что такое "раздельная компиляция", что такое "интерфейс класса" и "реализация класса" на примере - C++
Есть класс, содержащий объекты и конструктор. Конструктор объявляется в одном из cpp файлов(их несколько). Можно ли, как-то, использовать...

Реализация класса "Студент" и наследование от него класса "Аспирант" - C++
Помогите, пожалуйста! Создать абстрактный базовый класс Person, описывающий обычного человека. Создайте производный класс Student,...

Переопределение операторов, создание класса "Матрица" - C++
Здравствуйте, нужна помощь, уже очень долго не могу понять в чём проблема. Создал класс матрица, не работает простой код. Проблема в...

Создание динамических массивов внутри класса: Нарушение прав доступа при чтении "0xbf800000" - C++
столкнулся с непонятной для меня бедой. Если код написать внутри главной функции то всё работает. Но если попытаться перенести работу в...

26
dimcoder
Полярный
467 / 440 / 68
Регистрация: 11.09.2011
Сообщений: 1,142
07.01.2012, 19:34 #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
#include <iostream.h>
#include <conio.h>
 
class movie
{
   public:
 
   movie(const char * = 0, int = 0, const char * = 0);
 
   const char * getName()
   {
      return name;
   }
 
   int getLength()
   {
      return length;
   }
 
   const char * getJanr ()
   {
      return janr;
   }
 
   void setJanr(const char *);
   void setLength(int);
   void setName(const char *);
 
   void print()
   {
      cout << "Name = " << name << endl;
      cout << "Janr = " << janr << endl;
      cout << "Length = " << length << endl;
   }
 
   private:
 
   char name[30];
   char janr[30];
   int length;
}
 
movie::movie (const char * _name, int _l, const char * _janr)
{
   setJanr(_janr);
   setName(_name);
   setLength(_l);
}
 
void movie::setLength(int x) {length = x;}
main ()
{
   movie m("Titanik", 2000, "Drama");
 
   getch();
 
   return 0;
}
Правда не описал пока функции setName, SetJanre. Но тут знания классов особо не надо, делаете как и функцию setLength. Но всё же думаю, для понимания вам следует почитать литературу.
0
Gambit_d.s
0 / 0 / 0
Регистрация: 07.01.2012
Сообщений: 9
07.01.2012, 19:40  [ТС] #3
Спасибо, сейчас по разбираюсь.

Литературу читал: Учусь по книге "С++ для чайников". Может посоветуете что-нибудь, буду рад!
0
dimcoder
Полярный
467 / 440 / 68
Регистрация: 11.09.2011
Сообщений: 1,142
07.01.2012, 19:42 #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
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
#include <iostream.h>
#include <conio.h>
#include <string.h>
 
class movie
{
   public:
 
   movie(const char * = 0, int = 0, const char * = 0);
 
   const char * getName()
   {
      return name;
   }
 
   int getLength()
   {
      return length;
   }
 
   const char * getJanr ()
   {
      return janr;
   }
 
   void setJanr(const char *);
   void setLength(int x) {length = x;}
   void setName(const char *);
 
   void print()
   {
      cout << "Name = " << this->getName() << endl;
      cout << "Janr = " << this->getJanr() << endl;
      cout << "Length = " << this->getLength() << endl;
   }
 
   private:
 
   char name[30];
   char janr[30];
   int length;
}
 
movie::movie (const char * _name, int _l, const char * _janr)
{
   setJanr(_janr);
   setName(_name);
   setLength(_l);
}
 
void movie::setJanr(const char *j)
{
   for (int i = 0; i <= strlen(j); i++)
      janr[i] = j[i];
}
 
void movie::setName (const char * n)
{
   for (int i = 0; i <= strlen(n); i++)
      name[i] = n[i];
}
 
main ()
{
   movie m("Titanik", 2000, "Drama");
 
   m.print();
 
   getch();
 
   return 0;
}
Сам учил по Дейтелам
0
Gambit_d.s
0 / 0 / 0
Регистрация: 07.01.2012
Сообщений: 9
07.01.2012, 19:57  [ТС] #5
попробовал откампилить на dev cpp. ругается на

C++
1
2
movie::movie (const char * _name, int _l, const char * _janr)
{
говорит, что новый тип не может быть определен в типе выхода
0
dimcoder
Полярный
467 / 440 / 68
Регистрация: 11.09.2011
Сообщений: 1,142
07.01.2012, 20:05 #6
попробуйте
C++
1
void movie::movie (const char * _name, int _l, const char * _janr)
А на остальные функции не ругаецца? Просто я на борланде пишу.

Цитата Сообщение от Gambit_d.s Посмотреть сообщение
говорит, что новый тип не может быть определен в типе выхода
Не встречал
0
Gambit_d.s
0 / 0 / 0
Регистрация: 07.01.2012
Сообщений: 9
07.01.2012, 20:12  [ТС] #7
пишет следуюшее:

new types may not be defined in a return type
return type specification for constructor invalid


с void:

new types may not be defined in a return type
two or more date types in declaration of `movie'
return type specification for constructor invalid

на остольное не реагирует
0
dimcoder
Полярный
467 / 440 / 68
Регистрация: 11.09.2011
Сообщений: 1,142
07.01.2012, 20:16 #8
Так, попробуйте в описании класса, после метки public: написать void, вот так:
C++
1
void movie(const char * = 0, int = 0, const char * = 0);
0
soon
2545 / 1310 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
07.01.2012, 20:18 #9
После объявления класса должна быть точка с запятой
1
dimcoder
Полярный
467 / 440 / 68
Регистрация: 11.09.2011
Сообщений: 1,142
07.01.2012, 20:19 #10
Цитата Сообщение от soon Посмотреть сообщение
После класса должна быть точка с запятой
Точноманамана!
0
Gambit_d.s
0 / 0 / 0
Регистрация: 07.01.2012
Сообщений: 9
07.01.2012, 20:28  [ТС] #11
Все верно с " ; " все роботае!
Огромное спасибо!!!

Теперь объясните дураку где здесь конструктор,а где деструктор?
0
dimcoder
Полярный
467 / 440 / 68
Регистрация: 11.09.2011
Сообщений: 1,142
07.01.2012, 20:29 #12
Конструктор вот:
C++
1
movie(const char * = 0, int = 0, const char * = 0);
Деструктор здесь не требуется, но всё таки создаётся автоматически, пустым.
0
Gambit_d.s
0 / 0 / 0
Регистрация: 07.01.2012
Сообщений: 9
07.01.2012, 20:46  [ТС] #13
А методы?
я так понимаю. что метод тут только один?
"Вся информация о фильме"

Добавлено через 4 минуты
Методы уже дабавил ...
0
dimcoder
Полярный
467 / 440 / 68
Регистрация: 11.09.2011
Сообщений: 1,142
07.01.2012, 20:48 #14
Нет, setName, getName, setJanr, getJanr, print, setLength, getLength и т. д. - это всё методы

Добавлено через 53 секунды
Цитата Сообщение от Gambit_d.s Посмотреть сообщение
Методы уже дабавил ...
Куда? Я же вроде норм написал всё?
0
Gambit_d.s
0 / 0 / 0
Регистрация: 07.01.2012
Сообщений: 9
07.01.2012, 21:00  [ТС] #15
Кажется понял
Сейчас все верну назад

Добавлено через 4 минуты
Не хочу показаться наглым, но
можно хотябы синтаксис, как сделать наследника класса
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2012, 21:00
Привет! Вот еще темы с ответами:

Создание класса "Комплексные числа" - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; class Complex { private: double real; double image; public: Complex(double r,...

Создание и использование класса "Аквариум" - C++
Помогите с реализацией . Класс создан , а дальше немного непонятно . Класс Аквариум Скрытые поля: • Номер по порядку (назначается...

Создание класса "точка на плоскости" - C++
Создать класс &quot;точка на плоскости&quot;. Данные класса должны быть представлены 2мя полями: координатами точки. Класс должен содержать...

Добавление в файл и удаление из файла записей о объектах структуры "Фильм" - C++
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;stdlib.h&gt; using namespace std ; int const col=4; struct...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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