90 / 17 / 6
Регистрация: 21.09.2016
Сообщений: 176
|
||||||
1 | ||||||
Трабл по типу родитель - ребенок28.10.2016, 03:50. Показов 596. Ответов 11
Метки нет (Все метки)
Добрый вечер! Народ, в с++ недавно... пишу программу (пока что только в консоли)...
Не судите строго, но есть проблема и не могу из нее выход найти... Там код ниже... в таком виде протестируйте пж. Проблема в следующем: в родительском классе инициализирую вводом переменную pH. А в дочернем классе эта переменная pH выводится как 0. Укажите пж на ошибку. Да и вообще любую критику по поводу данного кода буду приветствовать. П.С. пока что все данные классов прайват для удобства тестирования.
0
|
28.10.2016, 03:50 | |
Ответы с готовыми решениями:
11
Родитель/Ребенок Выражение должно относиться к целочисленному типу или типу перечисления без области видимости Выражение должно относиться к целочисленному типу или типу перечисления без области видимости Выражение должно относиться к целочисленному типу или типу перечислений без области видимости |
90 / 17 / 6
Регистрация: 21.09.2016
Сообщений: 176
|
|
28.10.2016, 03:58 [ТС] | 3 |
В базовом классе инициализирую pH через cin (строка 43). Потом в зависимости от pH в функции (строка 204) интерполирую значение. Но после инициализации в дочерний класс pH передается как 0 (хотя вводил допустим 6).
0
|
90 / 17 / 6
Регистрация: 21.09.2016
Сообщений: 176
|
|
28.10.2016, 04:03 [ТС] | 5 |
В строке 206 я через cout вывожу pH для проверки... и оно нулевое (0). Как это исправить, чтоб выводило значение, которое я вводил при инициализации в базовом классе?
Добавлено через 1 минуту Или так вообще нельзя?
0
|
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
|
||||||
28.10.2016, 04:11 | 6 | |||||
Никак, потому что разные объекты. Нужно инициализировать переменную базового класса в объекте производного, а не в другом объекте базового.
0
|
90 / 17 / 6
Регистрация: 21.09.2016
Сообщений: 176
|
||||||
28.10.2016, 04:14 [ТС] | 7 | |||||
строка 205, функция сетЗета. cout << Initial:H << endl; --- выдает 0, хотя в классе Инитал я ее через cin инициализировал число (например 6). Оно все время выкидывает 0 и из-за этого все расчеты неправильные.
ммм... приколый смайл))))) cout << Initial:: pH << endl;
0
|
90 / 17 / 6
Регистрация: 21.09.2016
Сообщений: 176
|
|
28.10.2016, 04:22 [ТС] | 9 |
Он тогда всю инструкцию всех инициализаций за собой поволочет...
Разве нету такого варианта: 1) в базовом в getdata() я инициализирую pH 2) в производном через Initial:: pH получаю его значение и далее с ним работаю. может там что-то с конструкторами напорол?
0
|
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
|
|
28.10.2016, 04:24 | 10 |
Объект
b , в котором ты инициализируешь pH, не имеет никакого отношения к объекту a , в котором ты проверяешь значение pH. pH в b не имеет никакого отношения к pH в a .Добавлено через 1 минуту Представляешь, как выглядит объект производного класса?
1
|
90 / 17 / 6
Регистрация: 21.09.2016
Сообщений: 176
|
|
28.10.2016, 04:26 [ТС] | 11 |
Все понял, так нельзя... лови лайк!
0
|
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
|
||||||
28.10.2016, 04:46 | 12 | |||||
Можно но не так.
Тогда получишь то, что хочешь:
0
|
28.10.2016, 04:46 | |
28.10.2016, 04:46 | |
Помогаю со студенческими работами здесь
12
Выражение должно относиться к целочисленному типу или типу перечисления без области видимости 2IntelliSense: выражение должно относиться к целочисленному типу или типу перечисления без области видимости что происходит со старым конструктором когда я создаю новый, пренадлежащий производному типу? (первый конструктор пренадлежит базовому типу) Из текста "Мал ребенок, да удал" получить "Удал ребенок, да мал" Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |