70 / 70 / 35
Регистрация: 06.07.2016
Сообщений: 415
|
||||||||||||||||||||||||||||||||||||||
Множественное наследование и виртуальные функции24.09.2017, 23:05. Показов 859. Ответов 1
Метки нет Все метки)
(
Имеется вот такой код :
1.emp.h Кликните здесь для просмотра всего текста
2.main.cpp Кликните здесь для просмотра всего текста
Это упражнение номер 5 главы номер 14 книги "Язык программирования С++. Лекции и упражнения" Стивена Пратты : Кликните здесь для просмотра всего текста
5. Ниже приведено несколько объявлений классов:
виртуальным базовым классом. Поэтому не забывайте о специальных правилах для списков инициализации в конструкторах. Обратите также внимание на наличие нескольких методов с защищенным доступом. Это упрощает код некоторых методов highfink. (Например, если метод highfink: :ShowAll () просто вызывает fink: : ShowAll () и manager: : ShowAll (), то это приводит к двукратному вызову abstremp: : ShowAll ().) Реализуйте эти методы и протестируйте классы. Ниже приведена минимальная тестовая программа:
Почему методы ShowAll () и SetAll () виртуальные? Почему класс abstr_emp является виртуальным базовым классом? Почему в классе highfink нет раздела данных? Почему достаточно только одной версии операции operator« () ? Что произойдет, если код в конце программы модифицировать следующим образом:
Непосредственно n-е количество времени было затрачено, чтобы заставить это работать. Но нет, чего-то я видимо недопонимаю, так как в моменте начала работы с hf2 начинаются чудеса. Программа вылетает с ошибками ***stack smashing***, segmentation fault. Gdb ничего не говорит кроме этого, даже когда иду со входом в функции. Это уже третья реализация, где убрал почти что всю отсебятину, первоначальные версии были куда красивее и аккуратнее. Ткните носом, что же не так. Добавлено через 2 часа 23 минуты Какой ужас. Проблема решена. На строчке Ну, после того как дебаггер VS кинул на файл xmemory, все стало ясно. Решение - или инициализировать "чистой" строкой, либо же, я сделал так : emp.h
} emp.cpp
0
|
24.09.2017, 23:05 | |
Ответы с готовыми решениями:
1
Множественное наследование, виртуальные функции... Наследование и виртуальные функции Наследование и виртуальные функции |
284 / 232 / 114
Регистрация: 07.09.2016
Сообщений: 584
|
||||||
25.09.2017, 00:15 | ||||||
а не пробовали сделать так, чтобы она уже была инициализирована на момент использования? вот так
получения ее из функции - это куда правильнее. ей не место среди членов класса.
0
|
25.09.2017, 00:15 | |
Помогаю со студенческими работами здесь
2
Наследование и виртуальные функции Наследование и виртуальные функции Наследование. Виртуальные функции Наследование и виртуальные функции Наследование и виртуальные функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Оптимизация производительности Express.js бэкенда
Reangularity 23.05.2025
Express. js заслуженно остаётся одним из самых популярных инструментов для создания бэкенда, но даже он не застрахован от проблем с производительностью. Многие разработчики сталкиваются с ситуацией,. . .
|
Продвинутая обработка данных с LINQ в C#
stackOverflow 23.05.2025
LINQ (Language Integrated Query) — это фундаментальное изменение парадигмы работы с данными в C#. Простые запросы Where и Select знакомы любому разработчику, но настоящая мощь LINQ раскрывается в. . .
|
Инфраструктура PKI и сертификатов безопасности
Mr. Docker 23.05.2025
PKI (Public Key Infrastructure) — это невидимый фундамент цифрового доверия, без которого современный интернет просто рассыпался бы как карточный домик. За этой аббревиатурой скрывается целый. . .
|
Аутентификация OAuth в Python
py-thonny 22.05.2025
OAuth (Open Authorization) — это целый стандарт для делегированного доступа. Звучит занудно? Давайте проще: OAuth позволяет приложениям получать доступ к информации пользователя на сторонних сервисах. . .
|
Хеширование и соль паролей в веб-приложениях C#
stackOverflow 22.05.2025
Когда-то в начале своей карьеры я тоже грешил простейшими подходами к хранению паролей – MD5-хеширование казалось верхом защиты. Но технологии не стоят на месте, вычислительные мощьности растут, и. . .
|
Генераторы Python для эффективной обработки данных
AI_Generated 21.05.2025
В Python существует инструмент настолько мощный и в то же время недооценённый, что я часто сравниваю его с тайным оружием в арсенале программиста. Речь идёт о генераторах — одной из самых элегантных. . .
|
Чем заменить Swagger в .NET WebAPI
stackOverflow 21.05.2025
Если вы создавали Web API на . NET в последние несколько лет, то наверняка сталкивались с зелёным интерфейсом Swagger UI. Этот инструмент стал практически стандартом для документирования и. . .
|
Использование Linq2Db в проектах C# .NET
UnmanagedCoder 21.05.2025
Среди множества претендентов на корону "идеального ORM" особое место занимает Linq2Db — микро-ORM, балансирующий между мощью полноценных инструментов и легковесностью ручного написания SQL.
Что. . .
|
Реализация Domain-Driven Design с Java
Javaican 20.05.2025
DDD — это настоящий спасательный круг для проектов со сложной бизнес-логикой. Подход, предложенный Эриком Эвансом, позволяет создавать элегантные решения, которые точно отражают реальную предметную. . .
|
Возможности и нововведения C# 14
stackOverflow 20.05.2025
Выход версии C# 14, который ожидается вместе с . NET 10, приносит ряд интересных нововведений, действительно упрощающих жизнь разработчиков. Вы уже хотите опробовать эти новшества? Не проблема! Просто. . .
|