|
4 / 4 / 3
Регистрация: 26.05.2014
Сообщений: 354
|
|
Какие методы родительского класса не наследуются?29.05.2014, 08:24. Показов 10067. Ответов 19
Метки нет (Все метки)
1. конструктор копирования
2. конструктор по умолчанию 3. перегруженная операция присваивания 4. деструктор 5. конструктор с параметрами 6. виртуальные
0
|
|
| 29.05.2014, 08:24 | |
|
Ответы с готовыми решениями:
19
Какие методы класса fstream отвечают за определение количества строк в файле и длины строки? |
|
БНТУ ФИТР
215 / 155 / 42
Регистрация: 26.12.2012
Сообщений: 382
|
|
| 29.05.2014, 10:00 | |
|
lev_, конструкторы не наследуются.
0
|
|
|
|
|
| 29.05.2014, 11:00 | |
|
И деструктор, стало быть, тоже.
0
|
|
|
4 / 4 / 3
Регистрация: 26.05.2014
Сообщений: 354
|
|
| 29.05.2014, 11:31 [ТС] | |
|
спасибо
0
|
|
|
43 / 43 / 21
Регистрация: 02.06.2013
Сообщений: 181
|
|
| 29.05.2014, 12:17 | |
|
Ничего из приведенного не наследуется, кроме виртуальных функций, виртуальность на наследование методов в плане наследования или не наследования того или иного метода базового класса производным влияния не оказывает. Правда в c++ 11 вроде уже можно наследовать конструкторы
0
|
|
|
|
|
| 29.05.2014, 18:23 | |
|
Denis123456789, а перегруженный operator= разве не наследуется?
0
|
|
|
43 / 43 / 21
Регистрация: 02.06.2013
Сообщений: 181
|
||||||
| 29.05.2014, 20:52 | ||||||
|
BumerangSP, нет не наследуется, потому что обычно оператор присваивания имеет в качестве параметра константную ссылку на объект того же класса, в котором этот оператор перегружается, поэтому сигнатура даже в родственных классах будет разнится. Например следующий код не компилируется (хотя здесь оператор присваивания принимает параметр отличный от объекта того же класса)
0
|
||||||
|
|
||||||
| 29.05.2014, 21:23 | ||||||
|
Denis123456789, я как бы сам всегда утверждал, что, мол, не наследуется, т.к. его действия сходны с конструированием объекта.
Но вот данный код что подразумевает? Может, я позабыл чего?
0
|
||||||
|
43 / 43 / 21
Регистрация: 02.06.2013
Сообщений: 181
|
|
| 29.05.2014, 21:34 | |
|
BumerangSP, компилятор снабжает класс оператором присваивания по умолчанию, при отсутствии определения в классе оператора присваивания (также как конструктором и деструктором по умолчанию при отсутствия их определения) . Оператор присваивания по умолчанию присваивает членам объекта слева , значения соответствующих членов объекта справа. Если члены класса не являются указателями на области динамической памяти, то оператора присваивания по умолчанию достаточно.
0
|
|
|
138 / 130 / 59
Регистрация: 13.12.2012
Сообщений: 293
|
||||||
| 29.05.2014, 21:45 | ||||||
|
BumerangSP, А здесь же вроде встроенный оператор вызывается, не?
Добавлено через 11 минут Denis123456789, operator= все-таки наследуется, но в вашем примере встроенный b::operator=(const b&) перекрывает базовый a::operator=(int), поэтому этот пример не компилируется. Можно сделать так
0
|
||||||
|
|
|
| 29.05.2014, 21:46 | |
|
Denis123456789, ничего не понял, конкретней можно?) Эти общие сведения я из книжек помню. Но сейчас для конкретного примера специального туда не полез.
ViktorKozlov, ну, я присваиваю объекту класса B объект того же класса. Надпись выходит "A::op=". Определю свой operator= в классе B - будет выведено то, что напишу в его теле. Почему? UPD: Вот, кажется, все.
0
|
|
|
138 / 130 / 59
Регистрация: 13.12.2012
Сообщений: 293
|
|
| 29.05.2014, 21:57 | |
|
BumerangSP, встроенные операторы присваивания, конструкторы по умолчанию и копирования обладают таким свойством, что вызывают соответствующие функции базового класса. В вашем случае, встроенный operator= вызывает operator= базового класса, который определен. Если же в производном классе определить свой operator=, то он не будет по умолчанию вызывать базовую версию (но можно это сделать явно)
1
|
|
|
|
|
| 29.05.2014, 22:09 | |
|
ViktorKozlov, да с конструкторами-то все ясно. Что-то я всегда обделял вниманием operator=...Хотя логично, по сути. Копирование ведь происходит прямым копированием данных соотв. переменных. Притом для каждого подобъекта копируются свои.
0
|
|
|
138 / 130 / 59
Регистрация: 13.12.2012
Сообщений: 293
|
|
| 29.05.2014, 22:24 | |
|
BumerangSP, да так и есть. Иначе кому нужен такой встроенный оператор, если он будет напрямую все копировать? Если некоторые поля или базовый класс имеют определенный оператор=, то почему бы им не воспользоваться? В принципе, вполне логично
0
|
|
|
8 / 8 / 3
Регистрация: 12.12.2013
Сообщений: 30
|
|
| 20.10.2016, 23:03 | |
|
Не наследуются:
Конструкторы и деструкторы, Перегруженные операторы, Дружественные(friend) функции
0
|
|
|
Вездепух
12938 / 6805 / 1821
Регистрация: 18.10.2014
Сообщений: 17,227
|
||
| 21.10.2016, 00:23 | ||
|
- Все перегруженные операторы наследуются (С чего бы это вдруг им не наследоваться?) - Упоминание friend-функций тут совсем не в кассу. О чем речь вообще? - Деструкторы действительно не наследуются. - С конструкторами ситуация сложнее. Сами по себе они не наследуются, но начиная С++14 конструкторы (с рядом исключений) можно наследовать явно, путем применения using-декларации.
0
|
||
| 21.10.2016, 00:25 | |
|
0
|
|
|
Вездепух
12938 / 6805 / 1821
Регистрация: 18.10.2014
Сообщений: 17,227
|
|||
| 21.10.2016, 00:34 | |||
|
Не по теме:
0
|
|||
| 21.10.2016, 00:41 | |
|
0
|
|
| 21.10.2016, 00:50 | |
|
0
|
|
| 21.10.2016, 00:50 | |
|
Помогаю со студенческими работами здесь
20
Как вызвать виртуальную функцию из дочернего класса, если она определена и вызывается в конструкторе РОДИТЕЛЬСКОГО класса? Вызов метода родительского класса Доступ к переменной родительского класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|