|
1 / 1 / 0
Регистрация: 01.01.2015
Сообщений: 90
|
|
Описание виртуальной функции вне тела класса27.06.2015, 22:17. Показов 2723. Ответов 8
Метки нет (Все метки)
Добра.
Такой вопрос: Пускай у меня есть абстрактный класс Animal. У него есть виртуальная функция Voice. Могу ли я для класса Dog как-то описать эту функцию, но в ходе выполнения программы, в зависимости от введённых данных. (Пример очень условный) Спасибо.
0
|
|
| 27.06.2015, 22:17 | |
|
Ответы с готовыми решениями:
8
Описание тела функии-члена класса Как будут инициализированы переменные в теле функции и вне тела функции? |
|
10 / 10 / 8
Регистрация: 13.06.2015
Сообщений: 45
|
|
| 27.06.2015, 23:01 | |
|
Классика вопросов: Зачем?)
0
|
|
|
.NET C#,ASP.NET MVC
594 / 507 / 224
Регистрация: 16.10.2010
Сообщений: 1,902
|
|
| 27.06.2015, 23:02 | |
|
Присоеденяюсь, обьясните задачу, дабы не плодить костыли и велосипеды.
1
|
|
|
141 / 117 / 26
Регистрация: 07.12.2014
Сообщений: 371
|
|
| 27.06.2015, 23:12 | |
|
А какие входные данные могут быть?если другие типы и количества параметров то это перегрузка и никакого отношения к виртуальности функций не имеет.Другой код подсунуть в ран айме никак нельзя.Но если честно не могу придумать ни одного реального и хотя бы более менее адекватного случая когда нечто такое вообще могло бы понадобиться
0
|
|
|
1 / 1 / 0
Регистрация: 01.01.2015
Сообщений: 90
|
|
| 27.06.2015, 23:28 [ТС] | |
|
Ок. Я попробую пояснить на примере конкретной задачи.
Пускай, у нас есть 3 алгоритма шифрования: Чейза, Виженера, AES. Для каждого из них описан класс, и каждый наследуется от абстрактного класса Algorithm. У класса Algorithm есть виртуальные ф-ции Encrypt и Decrypt. Кроме того, будет класс UserAlg, наследуемый от того же Algorithm. Нужно в процессе работы программы описать UserAlg-у ф-ции Encrypt и Decrypt. Не в теле класса, иначе это теряет смысл. Возможно это сделать не возможно. Может, в таком случае, кто-то сможет подсказать паттерн, который бы описывал модель программы? Что-то вроде Builder. Но Builder, мне кажется, тут не применим. Спасибо.
0
|
|
|
141 / 117 / 26
Регистрация: 07.12.2014
Сообщений: 371
|
|
| 27.06.2015, 23:39 | |
|
Nowsoud, а почему собственно код внутри тела метода переопределенной функции вдруг теряет смысл?
0
|
|
|
.NET C#,ASP.NET MVC
594 / 507 / 224
Регистрация: 16.10.2010
Сообщений: 1,902
|
|
| 27.06.2015, 23:54 | |
|
Тоже не понял смысла. У вас есть абстрактный класс или интрефейс Алгоритм, в которм описаны прототипы функций Зашифровать и Расшифровать. Длаее определяете класс Алгоритм Чейза, который наследуеться от алгоритма, и соотвественно реализует функции шифровки и дешефровки. Класс UserAlg так же наследуемый от Алгоритма сможет реализовать данный метод по своему.
0
|
|
|
1151 / 743 / 483
Регистрация: 21.01.2014
Сообщений: 1,903
|
||||||
| 28.06.2015, 00:15 | ||||||
Сообщение было отмечено Nowsoud как решение
Решение
1
|
||||||
|
1 / 1 / 0
Регистрация: 01.01.2015
Сообщений: 90
|
|
| 28.06.2015, 00:23 [ТС] | |
|
Делегат - то, что нужно. Спасибо.
0
|
|
| 28.06.2015, 00:23 | |
|
Помогаю со студенческими работами здесь
9
Ошибка "Присваивание имени функции вне тела этой функции" при наличии двух одноименных функций в одном контексте Перекрытие виртуальной функции базового класса Функции вне класса
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|