|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
|
||||||
Наследование класс1 *test = new класс231.07.2013, 21:47. Показов 4190. Ответов 54
Метки нет (Все метки)
Кликните здесь для просмотра всего текста
Вот небольшая программка, подскажите в чем смысл записи в строчке 58, только не сухое определение записи, что мы создаем объект класса BaseClass и выделяем под него память типа DerivedClass (или как то так), а на пальцах, в чес смысл в чем плюсы и самое главное чем данная строка отличалась бы от записи BaseClass * test = new BaseClass ?
0
|
||||||
| 31.07.2013, 21:47 | |
|
Ответы с готовыми решениями:
54
Задача на класс2 Nginx перенаправляет на http://site.ru/test.ru или http://test.ru/test.ru C:\Projects\test\test.cpp|6|error: ISO C++ forbids declaration of 'operator++' with no type [-fpermissive]| |
|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
|
||
| 31.07.2013, 21:56 [ТС] | ||
|
0
|
||
|
40 / 40 / 5
Регистрация: 05.12.2011
Сообщений: 343
|
|
| 31.07.2013, 21:57 | |
|
Да ничем не отличается, кроме вызова конструктора производного класса, методы производного класса мы вызвать не можем, т.к. BaseClass про них ничего не знает. Если бы методы виртуальными были смысл бы был, а так бесполезный какой-то пример.
0
|
|
|
Комп_Оратор)
|
|
| 31.07.2013, 22:08 | |
|
VLK, у Вас нет запуска конструктора базового класса с параметрами в конструкторе дочернего класса с параметрами. Это возможно, но скорее всего неправильно.
Jupiter, намекает, что при неполиморфном наследовании вызовы методов будут делаться как и без наследования вовсе. И это правда. Представьте себе ещё, что у Вас есть ф-я принимающая указатель на базовый класс, а Вам нужен доступ к полям объектов и дочернего класса (общим с базовым типом) в этой функции. Тогда тоже имеет смысл создавать указатели на базовый и инициализировать их указателями на наследников, что бы передать.
0
|
|
|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
|
|
| 31.07.2013, 22:11 [ТС] | |
|
IGPIGP, т.е. без использования virtual функций ну и без запуска конструктора базового класса данный пример, а точнее данная запись не имеет смысла?
0
|
|
|
Неэпический
|
||
| 31.07.2013, 22:14 | ||
|
0
|
||
| 31.07.2013, 22:16 | |
|
0
|
|
|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
|
|
| 31.07.2013, 22:22 [ТС] | |
|
Ладно, не уходите далеко, сейчас я про virtual задам вопрос
0
|
|
|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
|
||||||
| 31.07.2013, 22:32 [ТС] | ||||||
|
Кликните здесь для просмотра всего текста
Странно, до этого тестировал другие подобные программы, при вызове функции в строчке 31, должен был выполнится метод из базового класса (хоть и объект производного класса), но в этой примере почему то из класса DerivedClass, почему так?
0
|
||||||
|
Комп_Оратор)
|
||||||
| 31.07.2013, 22:38 | ||||||
0
|
||||||
|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
|
|||||||||||
| 31.07.2013, 22:45 [ТС] | |||||||||||
|
Я ошибся, ни при такой записи, а только при записи типа BaseClass *test = new DerivedClass
Кликните здесь для просмотра всего текста
Вот без virtual, мы создаем объект базового класса и соответственно функция print будет вызываться из базового класса Кликните здесь для просмотра всего текста
Тут мы уже используем virtual и уже вызывается функция print из производного класса.. Не знаю как правильно технически задать этот вопрос, но надеюсь вы там поймете, для этого и существуют virtual функции и записи типа BaseClass *test = new DerivedClass Добавлено через 1 минуту в этих мною написанных программах, полиморфизм, он заключается в том что один объект, в данном случае test, одновременно является объектом класса BaseClass и объектом класса DerivedClass?
0
|
|||||||||||
|
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
|
||
| 31.07.2013, 22:51 [ТС] | ||
|
0
|
||
|
249 / 219 / 63
Регистрация: 30.07.2013
Сообщений: 465
|
|||
| 31.07.2013, 22:53 | |||
|
Добавлено через 1 минуту
0
|
|||
| 31.07.2013, 22:53 | |
|
Помогаю со студенческими работами здесь
20
Функция file_exists(test/01.ogg) работает, если папка test находится в корневом каталоге моего сервера. Что такое unit test и regression test
У себя на локале я пишу ссылку test.php?city=1 и в test.php он видет $city==1 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера 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, то после закрытия окошка. . .
|