Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
 Аватар для uLong
0 / 0 / 1
Регистрация: 18.04.2015
Сообщений: 138

С++ и полиморфизм

04.08.2015, 22:34. Показов 2710. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Ответьте пожалуйста на несколько вопросов:

1. Что такое абстрактная функция простыми словами?

2. Что такое виртуальная функция простыми словами ?

3. В чем разница между виртуальной и абстрактной функциями ? Я слышал что это почти одно и тоже.

4. Абстрактный класс тот, в котором есть хотя бы одна абстрактная функция?

5. В чем смысл чистой функции ? Почему нельзя сделать обычную функцию и перегрузить в наследнике?

6. Какое применение у чистой функции ?

7. Полиморфизм иными словами. А то в Википедии не слишком понятно. Мне именно не понятно: чем отличается наследование от полиморфизма? Ведь в первом используем функции и свойства базового класса и во втором также.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.08.2015, 22:34
Ответы с готовыми решениями:

Полиморфизм
Значит вот выдумал только что такой вот пример дабы обрести понимание полиморфизма. Скажите пожалуйста, перегрузка методов, как в...

Полиморфизм
Я хотел реализовать множество, используя множественное наследование, но когда написал template <class T> class set { ...

Полиморфизм
Всем доброго времени суток.Сразу к делу. Если описывать с помощью полиморфизма подклассы и потом динамично их создавать ,то можно вызывать...

27
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
05.08.2015, 09:34
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от gru74ik Посмотреть сообщение
12.2.5 Type Fields [derived.typefield]
To use derived classes as more than a convenient shorthand in declarations, we must solve the fol-
lowing problem: Given a pointer of type base*, to which derived type does the object pointed to
really belong? There are four fundamental solutions to the problem:
[1] Ensure that only objects of a single type are pointed to (§2.7, Chapter 13).
[2] Place a type field in the base class for the functions to inspect.
[3] Use dyna mic_cast t (§15.4.2, §15.4.5).
[4] Use virtual functions (§2.5.5, §12.2.6).
Ну и к чему здесь эта цитата? Вы сами-то читали о чем там?
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
05.08.2015, 11:23
Цитата Сообщение от Бьярне Страуструп
12.2.5. Поля типа
Чтобы использовать производные классы в качестве чего-то большего, чем
просто удобный способ сокращения исходного кода, мы должны решить следующую
проблему: как определить истинный (производный) тип объекта, адресуемого
указателем типа Base* (то есть указателем на базовый класс)? Существуют четыре
фундаментальных способа решения этой проблемы:
1. Гарантировать, что адресуются лишь объекты единственного типа (§2.7,
глава 13).
2. Поместить специальное поле типа в базовый класс, чтобы функции могли его
проверять.
3. Использбвать dynamic_cast (§15.4.2, §15.4.5).
4. Использовать виртуальные функции (§2.5.5, §12.2.6).
Может я чего-то неправильно понял, но, вроде как, автор только что назвал данные-члены "полем типа".
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
05.08.2015, 13:30
Цитата Сообщение от gru74ik Посмотреть сообщение
Может я чего-то неправильно понял
Так и я ж про это.
Цитата Сообщение от gru74ik Посмотреть сообщение
автор только что назвал данные-члены "полем типа".
А если почитать все-таки? В процитированном пункте он рассматривает в качестве гипотетической альтернативы виртуальным функциям некий открытый индикатор или признак типа в базовом классе, который он и называет полем по аналогии с полем записи в Паскале. Это единственное и весьма специфическое употребление термина "поле" к воображаемой принадлежности класса, которой в действительности не бывает.
Везде в книге он называет члены класса членами класса и никаких полей там не фигурирует.
0
05.08.2015, 13:48
 Комментарий модератора 
Друзья, давайте ближе к теме.
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
05.08.2015, 13:57
Mr.X, ладно, тут Вы, скорее всего, правы. Но насчёт функций-членов и методов Вы были слишком категоричны, признайтесь. Да, в стандарте и в большей части литературы, действительно употребляется термин "member functions", а не "methods". Но иногда употребляют и термин "methods" и это не ошибка, и даже не неточность, а скорее небольшая вольность. Ничего страшного в этом нет. И если бы было иначе, Страуструп об этом бы упомянул.

Цитата Сообщение от Mr.X Посмотреть сообщение
Это единственное и весьма специфическое употребление термина "поле" к воображаемой принадлежности класса, которой в действительности не бывает.
В оригинале - да, наверное. А в русском переводе - нет (Язык Программирования С++, 2011, Специальное издание, стр. 286):
Цитата Сообщение от Бьярне Страуструп
Обычные же функции (не функции-члены) теперь лишены возможности обращаться к закрытым полям класса напрямую.
Добавлено через 31 секунду

Не по теме:

DrOffset, ОК, прекращаю.

0
24 / 24 / 7
Регистрация: 25.04.2013
Сообщений: 195
05.08.2015, 20:35
Цитата Сообщение от gru74ik Посмотреть сообщение
Скачайте уже себе 2015 студию. Или QtCreator. Ну или Code::Blocks, хотя бы.
ХРюшка не потянет 2015 студию. ну так какой на этом форуме первый компилятор предложили тот и взял из бесплатных.
Цитата Сообщение от Mr.X Посмотреть сообщение
А что непонятно-то?
там все все все, и в одном файле, хоть комментарии были бы что там описывается.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
05.08.2015, 21:09
Цитата Сообщение от kuza84 Посмотреть сообщение
там все все все, и в одном файле, хоть комментарии были бы что там описывается.
Ну, я старался все имена делать самодокументируемыми, чтобы комментариев не нужно было.
Начните с функции main разбирать. Основной объект там - T_containers_selector, который имеет список вопросов разного типа. Если пользователь отвечает на вопрос, то он удаляется из списка. Программа так сконструирована, что пользователь может сам легко новые вопросы добавлять.

Добавлено через 19 минут
Цитата Сообщение от kuza84 Посмотреть сообщение
ХРюшка

Не по теме:

Кстати, недавно где-то слышал, что в американской армии несколько сотен тысяч компьютеров на ней работают, и Билл Гейтс втихую будет их поддерживать, отказав в этом всем остальным пользователям. Это уже мошенничество в какой-то извращенной форме.

0
24 / 24 / 7
Регистрация: 25.04.2013
Сообщений: 195
05.08.2015, 21:34
Цитата Сообщение от Mr.X Посмотреть сообщение
Если пользователь отвечает на вопрос, то он удаляется из списка.
а в откомпилированном виде можно её скачать тут.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.08.2015, 21:34

Полиморфизм
Всем привет...Проблема в такой задачке, вот условие... В окне приложения первоначально появляются 4 поля ввода, относящиеся к двум...

Полиморфизм.
Доброго времени суток. Если задача : При запуске приложение показывает окно фиксированного размера с квадратной областью 500х500. Ее...

Полиморфизм
Помогите сделать в коде полиморфизм. Тему особо не понимаю Если что, базовый класс - "Страна" и "Представитель"....

Полиморфизм
Здравствуйте :) Я пытался читать про полиморфизм. Читал-читал, но не очень дошло. Понял, что можно переопределить виртуальную функцию...

Полиморфизм
Доброго времени суток. Есть задание - показать принцип полиморфизма в программе. Я написал некоторый код, однако компилятор ругается, что...


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru