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

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

Войти
Регистрация
Восстановить пароль
 
tasik
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 52
#1

Не могу разобраться с наследованием - C++

26.03.2014, 21:41. Просмотров 223. Ответов 6
Метки нет (Все метки)

есть клас

C++ (Qt)
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
class Liquid{
    private:
        string name;
        float density;
    public:
        Liquid(){
            name = "unknow";
            density = 0;
        }
 
        Liquid(string n, float d){
            name = n;
            density = d;
        }
 
        Liquid(const Liquid& l){}
 
 
        void set_name(){
            cout << "Enter name of liquid: ";
            cin >> name;
        }
 
        void set_density(){
            cout << "Enter density of liquid: ";
            cin >> density;
        }
 
 
        string get_name(){
            return name;
        }
 
        float get_density(){
            return density;
        }
 
        void show(){
            cout << name << ' ' << density << endl;
        }
 
};
нужно создать клас Alcohol
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Alcohol : public Liquid{
    private:
 
        float strength;
    public:
        Alcohol(){
            name = "unknow";
            density = 0;
            strength = 0;
        }
 
        
 
        void set_strength(){
            cout << "Enter strength of liquid: ";
            cin >> strength;
        }
 
        void show(){
            cout << name << ' ' << density << ' ' << strength << endl;
        }
};
не наследуются поля в родительском класе!Как решить проблему!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2014, 21:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не могу разобраться с наследованием (C++):

не могу разобраться.. - C++
Вывести на экран все натуральные числа из диапазона от A до B, в записи которых цифра 7 встречается ровно N раз. При отсутствии чисел с...

Не могу разобраться с С++ - C++
Всем Привет, так я кодеру в Делфи. Не давно нашел что мне нужно но оy написан на С. Вот и начался у меня проблемы с кодами. Вот часть...

не могу разобраться с Условием! - C++
Напишите программу принимающую на выходе символ оператора с двумя опредантами и выводящую на экран результат вычисления! пример (+ 100...

Не могу разобраться с программой в С++ - C++
Написала программку на С++, он ее запускает и как я понимаю выполняет, но вот результатов я не вижу( И вот что мне выдает сама программа: ...

Не могу разобраться с сортировками - C++
Преподаватель дал задание написать алгоритмы. Я написал и мне все казалось верным, но в самой обыкновенной сортировке пузырьком у меня...

Не могу разобраться с ошибкой - C++
В общем такой код Source.cpp #include &lt;iostream&gt; using namespace std; #include &quot;header.h&quot; stack_type::stack_type() { ...

6
zss
Модератор
Эксперт С++
6516 / 6078 / 2001
Регистрация: 18.12.2011
Сообщений: 15,792
Завершенные тесты: 1
26.03.2014, 21:53 #2
private поменяйте на protected
1
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.03.2014, 22:02 #3
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
class Liquid{
    private:
        string name;
        float density;
    public:
        Liquid(){
            name = "unknow";
            density = 0;
        }
 
        Liquid(string n, float d){
            name = n;
            density = d;
        }
 
        Liquid(const Liquid& l){}
 
 
        void set_name(){
            cout << "Enter name of liquid: ";
            cin >> name;
        }
 
        void set_density(){
            cout << "Enter density of liquid: ";
            cin >> density;
        }
 
 
        string& get_name(){
            return name;
        }
 
        float& get_density(){
            return density;
        }
 
        void show(){
            cout << name << ' ' << density << endl;
        }
 
};
 
class Alcohol : public Liquid{
    private:
 
        float strength;
    public:
        Alcohol(){
            get_name() = "unknow";
            get_density() = 0;
            strength = 0;
        }
 
        
 
        void set_strength(){
            cout << "Enter strength of liquid: ";
            cin >> strength;
        }
 
        void show(){
            cout << get_name() << ' ' << get_density() << ' ' << strength << endl;
        }
};
1
zss
Модератор
Эксперт С++
6516 / 6078 / 2001
Регистрация: 18.12.2011
Сообщений: 15,792
Завершенные тесты: 1
27.03.2014, 08:08 #4
alsav22,
Цитата Сообщение от alsav22 Посмотреть сообщение
float& get_density(){
Так делать нелогично, поскольку становятся доступными из вне защищенные члены класса.
1
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
27.03.2014, 12:00 #5
Цитата Сообщение от zss Посмотреть сообщение
Так делать нелогично, поскольку становятся доступными из вне защищенные члены класса.
Согласен, мой косяк (под код ТС старался подстроиться).
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
class Liquid
{
    private:
        string name;
        float density;
    public:
        Liquid() : name(""), density(0)
        {
        }
 
        Liquid(string str, float d) : name(str), density(d)
        {
        }
 
        Liquid(const Liquid& l){}
 
        void set_name(string str)
        {
            name = str;
        }
 
        void set_density(float d)
        {
            density = d;
        }
 
        string get_name() const 
        {
            return name;
        }
 
        float get_density() const
        {
            return density;
        }
 
        void show() const
        {
            cout << name << ' ' << density << endl;
        }
 
};
 
class Alcohol : public Liquid
{
    private:
        float strength;
    public:
        Alcohol() : strength(0)
        {
            
        }
 
        Alcohol(string str, float d, float n) : Liquid(str, d), strength(n)
        {
            
        }
 
        void set_strength(float d)
        {
            strength = d;
        }
 
        float get_strength() const
        {
           return strength;
        }
 
        void show() const
        {
            cout << get_name() << ' ' << get_density() << ' ' << strength << endl;
        }
};
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
27.03.2014, 13:32 #6
Цитата Сообщение от alsav22 Посмотреть сообщение
Согласен, мой косяк (под код ТС старался подстроиться).
так можно и константную ссылку вернуть же
0
alsav22
27.03.2014, 13:41     Не могу разобраться с наследованием
  #7

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
так можно и константную ссылку вернуть же
Можно, но я хотел сохранить логику (или синтаксис?) ТС:
C++
1
2
3
4
5
Alcohol(){
            name = "unknow";
            density = 0;
            strength = 0;
        }
Т.е., заменить name = "unknow", density = 0, похожим действием. Отвлёкся от того, что это классы.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2014, 13:41
Привет! Вот еще темы с ответами:

Не могу разобраться с циклом - C++
int _tmain(int argc, _TCHAR* argv) { int x,y; cout &lt;&lt; &quot;Vvedite dva chisla&quot; &lt;&lt; endl; cin &gt;&gt; x &gt;&gt; y; for (int i=1; i&lt;=y; i++) { ...

Не могу разобраться в vector<> - C++
Доброго времени суток. Не могу понять реализацию вектора, да и вообще с векторами плохо знакома. Мне бы только показать, как ввести...

Не могу разобраться в задаче - C++
В командных олимпиадах по программированию для решения предлагается не больше 11 задач. Команда может решать предложенные задачи в любом...

Не могу разобраться с кодом - C++
Не могу разобраться с участком кода, а именно зачем нужны &quot;++&quot; *buffer-&gt;DataEnd++ = data32;


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

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

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