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

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

26.03.2014, 21:41. Показов 519. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.03.2014, 21:41
Ответы с готовыми решениями:

Не могу разобраться с наследованием класса
ТЗ: Описать класс, реализующий десятичный счетчик, который может увеличивать или уменьшать свое значение на единицу в заданном...

Разобраться с наследованием
сорри, я шарп 2 раз вижу, разбираюсь. накидал форму с данными через mysql connector/net , накидал форму для редактирования данных. все...

Разобраться с наследованием классов
Всем привет, не могу вкурить в наследование классов. Слезно прошу помочь Например есть наследуемые классы и набор их ридеров: ...

6
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,243
26.03.2014, 21:53
private поменяйте на protected
1
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.03.2014, 22:02
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
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,243
27.03.2014, 08:08
alsav22,
Цитата Сообщение от alsav22 Посмотреть сообщение
float& get_density(){
Так делать нелогично, поскольку становятся доступными из вне защищенные члены класса.
1
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
27.03.2014, 12:00
Цитата Сообщение от 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
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
27.03.2014, 13:32
Цитата Сообщение от alsav22 Посмотреть сообщение
Согласен, мой косяк (под код ТС старался подстроиться).
так можно и константную ссылку вернуть же
0
27.03.2014, 13:41

Не по теме:

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.03.2014, 13:41
Помогаю со студенческими работами здесь

Нужно разобраться с правильным наследованием
Есть класс Round, у которого private поля х, y, r &quot;обернутые свойствами&quot; (координаты центра и радиус). Есть класс Ring, который наследуется...

Задали работу, не могу разобраться. Используется делфи 10, не могу разобраться, как это сделать
В одномерном массиве, состоящем из n вещественных элементов, вычислить: минимальный элемент массива и сумму элементов массива,...

Не могу разобраться разобраться с кодом меню
Добрый день. Я понимаю, что тут все, наверное, элементарно. Но я только начала изучение js и пока для меня все страшно и сложно. Проблема...

Приветствую, не могу разобраться с кодом программы и не могу сделать .obj файл
.model tiny; нужно будет получить исполняемый файл формата СОМ .code org 100h start: mov ax, 3 int 10h ; устанавливаем...

Не могу написать комментарии для функции поиска, не могу разобраться...
void __fastcall TForm1::FindDialog1Find(TObject *Sender) { int found, start, end; // Èíèöèàëèçàöèÿ ïåðåìåííûõ start =...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru