Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
 Аватар для wendstor
139 / 137 / 66
Регистрация: 15.05.2012
Сообщений: 518

Есть ли механизмы наследования в C++ как в Delphi?

02.02.2016, 17:53. Показов 3924. Ответов 82
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую.
Я Delphi'ст. И интересует следующий вопрос. А именно в чём различие методов классов abstract от virual в плане наследования?
Приведу пример на delphi:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
type
  TBaseClass = class
   public
     procedure BlaBla(); virtual;
  end;
 
  TNextClas = class (TBaseClass) // наследование от базового класса
    public
     // procedure BlaBla(); virtual; // наследуется от базового (копия) и может перекрыт при наследовании
  end;
 
  TNextClas2 = class (TNextClas) // наследование класса
    public
     // procedure BlaBla(); virtual; // та же петрушка) но от TNextClas
  end;
В данном случае, при наследовании классов метод BlaBla основного класса (TBaseClass) будет унаследован другими классами (предками), без явного их описания, т.е. скопирован. При этом если описать метод BlaBla() следующем образом (является медленным):
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
type
  TBaseClass = class
   public
     procedure BlaBla(); dynamic;
  end;
 
  TNextClas = class (TBaseClass) // наследование от базового класса
    public
     // procedure BlaBla(); dynamic; // ссылается на базовый класс, и не копируется
  end;
 
  TNextClas2 = class (TNextClas) // наследование класса
    public
     // procedure BlaBla(); dynamic; // та же петрушка) Ссылается на метод BlaBla() класса TBaseClass
  end;
Т.е. во втором случае BlaBla() метод не копируется классами предками, а только ссылается на метод базового класса.
В общем как обстаят дела у с++ при наследовании классов?
Заранее благодарю...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.02.2016, 17:53
Ответы с готовыми решениями:

Как правильно использовать механизмы наследования и полиморфизма для создания единого интерфейса
Доброго времени суток Комрады! Я невкурю тему про полиморфную обработку или как кошерно_правильно и рассово_верно использовать механизмы...

Разработать и реализовать иерархию классов, используя механизмы наследования
Добрый день, помогите, пожалуйста! очень нужна помощь! Необходимо разработать и реализовать иерархию классов для описанных объектов...

Какие есть механизмы идентификации, аутентификации и авторизации?
Здравствуйте! Ни кто не знает материала про систему идентификации, аутентификации и авторизации в Linux? Как работает, каков механизм,...

82
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
04.02.2016, 14:56
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от avgoor Посмотреть сообщение
Затенение и сокрытие/перекрытие - синонимы.
Я их так и использовал.
Цитата Сообщение от avgoor Посмотреть сообщение
В производном классе так же.
Не поняли что я говорю.
Затенение функции переменной в глобальной области и у пары base-derived работает похоже. Я и сказал, что Ваш пример:
Цитата Сообщение от IGPIGP Посмотреть сообщение
как раз показывает, что области видимости базового и производного работают так, как будто это одна область
Но различие состоит в повторном объявлении имени функции. Повторю, что хотел сказать: Метод базового класса есть в наследнике (по имени, доступ то есть) пока не появилось объявление метода с тем же именем. Даже если прототип отличен. В глобальной области происходит перегрузка. А тут пропадает то что было (затеняется/перекрывается).
0
 Аватар для avgoor
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
04.02.2016, 16:01
IGPIGP, В одной области не может быть двух определений одной переменной. Т.е. это разные области.

Добавлено через 1 минуту
Область видимости родительского класса - внешняя по отношению к наследнику.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
04.02.2016, 18:37
Цитата Сообщение от avgoor Посмотреть сообщение
В одной области не может быть двух определений одной переменной.
Я нигде не писал что может.
Цитата Сообщение от avgoor Посмотреть сообщение
Т.е. это разные области.
Та не, если это одна область, то она-таки одна и есть. Судя по тому как идёт диалог, предлагаю его просто остановить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.02.2016, 18:37

Программирование системы подсказок - есть ли стандартные механизмы?
Требуется сделать систему помощи программы. Есть ли встроенные средства в .NET(c#)? Спасибо за любой совет или подсказку.

Какие механизмы для защиты кучи есть?
Необходимо отключить механизмы защиты от переполнения кучи стоит windows 8.1 vs 12 -13 при необходимости готов менять операционку

Есть ли в Oracle механизмы работы с очень большими объемами данных ?
Проблема такая: Есть база, которой пользуемся уже 4 года, структура базы такова, что есть несколько быстро растущих таблиц связанных с...

Есть исходник DLL на Delphi как (и возможно ли) написать похожее на VB.NET и использовать в среде программы написанной на Delphi
Суть вопроса вкратце такова - Есть исходник DLL написанной на Delphi Library Extdll; uses SysUtils, Windows; type ...

Распределённые системы. Как именно реализовываются механизмы масштабируемости?
Пишу простую распределённую систему. Её задача - связать каждый узел с каждым гарантированно за конечное время в том смысле, что, взяв...


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

Или воспользуйтесь поиском по форуму:
83
Ответ Создать тему
Новые блоги и статьи
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru