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

Исправить ошибку в коде на наследование - C++

Восстановить пароль Регистрация
 
katkat95
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 11
21.05.2014, 18:47     Исправить ошибку в коде на наследование #1
Условие задачи: Создать класс Movie с полями: title (строка), length (в минутах, число). Создать конструктор.
Создать также метод изменения длины (с одним параметром: новая длина в минутах). Создать метод Info, который возвращает информацию о фильме (возвращающий строку). Определить метод проверяющий, что длина фильма (в минутах) больше заданной. Создать производный класс Comedy с дополнительным полем: funniness (строка: “not funny”, “funny”, “very funny”). Создать конструктор и метод Info с дополненными данными.
Вот мой код:
Кликните здесь для просмотра всего текста

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
#include <conio.h>
#include <string>
#include <iostream>
using namespace std;
class Movie
{ private: 
string title;
int length;
public:
Movie(string,int);
void setLength(int);
void info ();
void newLen();
};
Movie::Movie(string t, int l)
{ title=t;
length=l;
};
void Movie::setLength(int newlen)
{
length=newlen;
};
void Movie::info()
{cout<<"Название фильма: "<<title<<endl;
cout<<"Длительность (в минутах): "<<length<<endl;
};
void Movie::newLen()
{ cout<<"Введите новую длину фильма (в минутах)";
int x;
cin>>x;
setLength(x);
if (x>length)
    cout<<"Длина фильма больше заданной"<<endl;
else
    cout<<"Длина фильма меньше заданной"<<endl;
}
class Comedy: Movie
{ 
private:
string funniness;
public:
Comedy (string, int, string);
void Info();
void newLen();
};
Comedy::Comedy(string t1, int len1, string fun): Movie (t1, len1)
{ funniness=fun;
};
void Comedy::Info()
{ info();
cout<<"Смешное ли кино: "<<funniness<<endl;
};
int main ()
{ setlocale(0,"");
Comedy b1("Ведьма", 563, "no funny");
b1.Info();
b1.newLen();
Comedy b2("Книга жизни", 346, "funny");
b2.Info();
system ("pause");
return 0;
}


Выдается ошибка:
Error C2247: 'Movie::newLen' not accessible because 'Comedy' uses 'private' ti inherit from "Movie'
Как исправить это? Подскажите
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2014, 18:47     Исправить ошибку в коде на наследование
Посмотрите здесь:

Исправить ошибку в коде C++
Исправить ошибку в коде с++ C++
C++ Исправить ошибку в коде
C++ исправить ошибку в коде
C++ Исправить ошибку в коде.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
you_rule
 Аватар для you_rule
56 / 57 / 21
Регистрация: 08.03.2014
Сообщений: 138
21.05.2014, 18:50     Исправить ошибку в коде на наследование #2
newLen попробуйте сделать виртуальной
katkat95
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 11
21.05.2014, 19:38  [ТС]     Исправить ошибку в коде на наследование #3
Та же ошибка выдается
Вованя
116 / 116 / 46
Регистрация: 20.02.2014
Сообщений: 413
21.05.2014, 19:41     Исправить ошибку в коде на наследование #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Наследование сделайте public
katkat95
0 / 0 / 0
Регистрация: 20.03.2014
Сообщений: 11
21.05.2014, 19:51  [ТС]     Исправить ошибку в коде на наследование #5
Да, спасибо большое, так работает
Yandex
Объявления
21.05.2014, 19:51     Исправить ошибку в коде на наследование
Ответ Создать тему
Опции темы

Текущее время: 08:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru