|
4 / 4 / 3
Регистрация: 26.05.2014
Сообщений: 354
|
|
Какие методы родительского класса не наследуются?29.05.2014, 08:24. Показов 9740. Ответов 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
|
|
|
Вездепух
12912 / 6781 / 1816
Регистрация: 18.10.2014
Сообщений: 17,159
|
||
| 21.10.2016, 00:23 | ||
|
- Все перегруженные операторы наследуются (С чего бы это вдруг им не наследоваться?) - Упоминание friend-функций тут совсем не в кассу. О чем речь вообще? - Деструкторы действительно не наследуются. - С конструкторами ситуация сложнее. Сами по себе они не наследуются, но начиная С++14 конструкторы (с рядом исключений) можно наследовать явно, путем применения using-декларации.
0
|
||
| 21.10.2016, 00:25 | |
|
0
|
|
|
Вездепух
12912 / 6781 / 1816
Регистрация: 18.10.2014
Сообщений: 17,159
|
|||
| 21.10.2016, 00:34 | |||
|
Не по теме:
0
|
|||
| 21.10.2016, 00:41 | |
|
0
|
|
| 21.10.2016, 00:50 | |
|
0
|
|
| 21.10.2016, 00:50 | |
|
Помогаю со студенческими работами здесь
20
Как вызвать виртуальную функцию из дочернего класса, если она определена и вызывается в конструкторе РОДИТЕЛЬСКОГО класса? Вызов метода родительского класса Доступ к переменной родительского класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
||||
|
Мысли в слух
kumehtar 07.11.2025
Заметил среди людей, что по-настоящему верная дружба бывает между теми, с кем нечего делить.
|
Новая зверюга
volvo 07.11.2025
Подарок на Хеллоуин, и теперь у нас кроме Tuxedo Cat есть еще и щенок далматинца:
Хочу еще Симбу взять, очень нравится. . .
|
Инференс ML моделей в Java: TensorFlow, DL4J и DJL
Javaican 05.11.2025
Python захватил мир машинного обучения - это факт. Но когда дело доходит до продакшена, ситуация не так однозначна. Помню проект в крупном банке три года назад: команда data science натренировала. . .
|
Mapped types (отображённые типы) в TypeScript
Reangularity 03.11.2025
Mapped types работают как конвейер - берут существующую структуру и производят новую по заданным правилам. Меняют модификаторы свойств, трансформируют значения, фильтруют ключи. Один раз описал. . .
|
Адаптивная случайность в Unity: динамические вероятности для улучшения игрового дизайна
GameUnited 02.11.2025
Мой знакомый геймдизайнер потерял двадцать процентов активной аудитории за неделю. А виновником оказался обычный генератор псевдослучайных чисел. Казалось бы - добавил в карточную игру случайное. . .
|
|
Протоколы в Python
py-thonny 31.10.2025
Традиционная утиная типизация работает просто: попробовал вызвать метод, получилось - отлично, не получилось - упал с ошибкой в рантайме. Протоколы добавляют сюда проверку на этапе статического. . .
|
C++26: Read-copy-update (RCU)
bytestream 30.10.2025
Прошло почти двадцать лет с тех пор, как производители процессоров отказались от гонки мегагерц и перешли на многоядерность. И знаете что? Мы до сих пор спотыкаемся о те же грабли. Каждый раз, когда. . .
|
Изображения webp на старых x32 ОС Windows XP и Windows 7
Argus19 30.10.2025
Изображения webp на старых x32 ОС Windows XP и Windows 7
Чтобы решить задачу, использовал интернет:
поисковики Google и Yandex, а также подсказки Deep Seek.
Как оказалось, чтобы создать. . .
|
Passkey в ASP.NET Core identity
stackOverflow 29.10.2025
Пароли мертвы. Нет, серьезно - я повторяю это уже лет пять, но теперь впервые за это время чувствую, что это не просто красивые слова. В . NET 10 команда Microsoft внедрила поддержку Passkey прямо в. . .
|
Последние результаты исследования от команды MCM (октябрь 2025 г.)
Programma_Boinc 29.10.2025
Последние результаты исследования от команды MCM (октябрь 2025 г. )
Поскольку мы продолжаем изучать гены, которые играют ведущую роль в развитии рака, в рамках проекта "Картирование раковых. . .
|