|
1 / 1 / 1
Регистрация: 15.07.2013
Сообщений: 19
|
||||||
Виртуальные функции02.12.2013, 09:41. Показов 964. Ответов 11
Метки нет (Все метки)
Подскажите пожалуйста, как передать переменную из одной виртуальной функции в другую. Вот код программы работает правильно, но в остальных функциях берет числа из мусора.
0
|
||||||
| 02.12.2013, 09:41 | |
|
Ответы с готовыми решениями:
11
Виртуальные и чисто виртуальные функции Виртуальные функции
|
|
|
|||||||
| 02.12.2013, 09:50 | |||||||
|
В конструкторе инициализируйте внутреннюю переменную и не будет хлама:
0
|
|||||||
|
1 / 1 / 1
Регистрация: 15.07.2013
Сообщений: 19
|
|
| 02.12.2013, 09:56 [ТС] | |
|
мне надо передать переменную мою q в другие классы то есть чтобы в conver2 и convert3 тоже использовалась число переменной q
0
|
|
|
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
|
|
| 02.12.2013, 10:00 | |
|
Объекты a и s не проинициализированы, поэтому и мусор получаешь .
Может конструктор создать, который бы принимал класс типа convert. ну или как вариант статическое поле завести.
0
|
|
|
1 / 1 / 1
Регистрация: 15.07.2013
Сообщений: 19
|
|
| 02.12.2013, 10:02 [ТС] | |
|
то есть мне надо указывать как обычную функцию их? тогда какой смысл от виртуальной функции?
Поля мы еще не проходили
0
|
|
|
Модератор
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,243
|
|
| 02.12.2013, 10:17 | |
|
Мне кажется, Вы не совсем понимаете смысл наследования.
Производный класс содержит ВСЕ методы и данные(поля) базового класса. Т.е. переменная d там уже есть. Нюанс в том, что Вы забыли написать конструкторы производных классов, которые в свою очередь обязаны вызывать конструктор базового класса. Виртуальная функция нужна для того, чтобы она делала что-то такое, чего не может сделать функция базового класса (но вызываться она должна из кода, который не знает о структуре производного класса.
0
|
|
|
Модератор
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,243
|
||||||
| 02.12.2013, 10:25 | ||||||
1
|
||||||
|
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
|
||||||
| 02.12.2013, 10:35 | ||||||
|
Вот моя капля дегтя в бочку с медом, суть не меняется, надо просто инициализировать, то что создаешь
1
|
||||||
|
1 / 1 / 1
Регистрация: 15.07.2013
Сообщений: 19
|
|
| 02.12.2013, 10:38 [ТС] | |
|
Спасибо вам большое! Только я так и не понял какая разница виртуальных от обычных функций потомков? Только имя остается и все?
0
|
|
|
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
|
|
| 02.12.2013, 10:51 | |
|
Читай про полиморфизм.
0
|
|
|
Модератор
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,243
|
||
| 02.12.2013, 11:03 | ||
|
t->perevod(); // вызывается виртуальный метод из базового класса t=&a; // Инициализируем указатель базового класса адресом производного класса t->perevod(); // вызывается виртуальный метод из производного класса хотя и используем тот же самый указатель базового класса b.perevod(); // вызывается метод из базового класса обычным способом a.perevod(); // вызывается из производного класса обычным способом a.convert: : perevod(); // вызывается из базового класса (там двойное двоеточие) обычным способом Добавлено через 5 минут Еще можете добавить невиртуальный метод и посмотреть, что в двух первых случаях будет вызываться метод из базового класса.
0
|
||
| 02.12.2013, 11:03 | |
|
Помогаю со студенческими работами здесь
12
Виртуальные функции Виртуальные функции
Виртуальные функции Виртуальные функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
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, то после закрытия окошка. . .
|