|
1 / 1 / 0
Регистрация: 17.11.2021
Сообщений: 45
|
||||||||||||||||
Наследование классов09.04.2025, 18:38. Показов 5996. Ответов 39
Здравствуйте!
Изучаю наследование классов, но никак не могу понять, в чём ошибка в следующем коде:
0
|
||||||||||||||||
| 09.04.2025, 18:38 | |
|
Ответы с готовыми решениями:
39
Заменить наследование классов на наследование интерфейсов Наследование классов. Копирование производных классов Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов |
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||
| 09.04.2025, 19:11 | ||
Сообщение было отмечено aleksevgeny как решение
Решение
1
|
||
|
1 / 1 / 0
Регистрация: 17.11.2021
Сообщений: 45
|
|
| 09.04.2025, 19:41 [ТС] | |
|
DrOffset, ужас, я даже и не заметил ведь. Только непонятно, почему компилятор ничего не сказал и позволил это дело скомпилировать.
Добавлено через 1 минуту Ещё такой вопрос, с Вашего позволения, вот у меня цена (price) типа float и я точно указал цену, например, 500900.99, но мне выводит округлённое значение, то есть 500901. Почему так и что с этим делать?
0
|
|
|
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
|
||||
| 09.04.2025, 20:15 | ||||
|
Не буду в стотысячный раз расписывать почему числа с плавающей точкой неточные. Обратитесь к буквально любой документации. Для рубля это в копейках. И только при выводе можно вывести число копеек, делённое на сто в виде рублей и остаток от деления числа копеек на сто в виде копеек.
2
|
||||
|
1 / 1 / 0
Регистрация: 17.11.2021
Сообщений: 45
|
|
| 09.04.2025, 20:26 [ТС] | |
|
Всем большое спасибо за ответы! Тему можно закрывать
0
|
|
|
Модератор
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
|
||||||
| 10.04.2025, 06:48 | ||||||
|
aleksevgeny, В таком виде Ваша иерархия классов бесполезна.
Всегда можно создавать экземпляры класса Vehicle и указывать в последнем параметре тип. Наследование должно подразумевать что-то новое. Поскольку Вы подразумеваете тип, то он не должен присутствовать в базовом классе, а наследники как раз и будут определять тип АВТОМАТИЧЕСКИ! И тут как раз напрашивается задействовать полиморфизм объявив метод printVehicleInfo () виртуальным
p.s. извиняюсь за такое заполнение списков colors (у меня VS 2008 не поддерживает инициализацию контейнеров).
1
|
||||||
|
фрилансер
6455 / 5657 / 1129
Регистрация: 11.10.2019
Сообщений: 15,070
|
|
| 10.04.2025, 07:00 | |
|
zss, я сначала подумал, что кто-то бсод словил
![]()
1
|
|
|
Модератор
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
|
||||||
| 10.04.2025, 11:37 | ||||||
|
Можно пойти дальше и сделать класс Vehicle абстрактным
1
|
||||||
|
1 / 1 / 0
Регистрация: 17.11.2021
Сообщений: 45
|
|
| 10.04.2025, 12:17 [ТС] | |
|
zss, о, вот это очень интересно. Спасибо большое, что потратили время и расписали. Я про полиморфизм и абстрактные классы пока ещё не особо шарю, но как раз изучаю это, поэтому будет интересно разобраться в Вашем коде
0
|
|
|
фрилансер
6455 / 5657 / 1129
Регистрация: 11.10.2019
Сообщений: 15,070
|
||
| 10.04.2025, 13:36 | ||
)
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 10.04.2025, 13:42 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 17.11.2021
Сообщений: 45
|
|
| 10.04.2025, 14:19 [ТС] | |
|
Интересно, чем вызвана необходимость использовать Visual Studio 2008? Связано ли это со слабым железом, где нельзя ничего поновее поставить? Ну тогда можно тот же Visual Studio Code накатить, всех возможностей полноценной IDE, конечно же, не будет, но писать код и скомпилировать его вполне можно, но надо ставить отдельно компилятор. Я эту программу как раз в VS Code писал, VS Code + msys2. А ещё можно компилятор от Microsoft использовать из Visual Studio (CL), но там неудобно немного, потому что через консоль надо компилировать. Кстати, если кто-то знает, есть ли возможность его прикрутить к VS Code без необходимости использовать консоль, то расскажите, пожалуйста.
P/S Я помню, что когда-то у Microsoft была замечательная программа для студентов DreamSpark, вот там можно было бесплатно получить лицензионный Microsoft Visual Studio 2008, а ещё Windows 8.1 Embedded, и ряд других программ. Потом прикрыли эту программу, к сожалению... UPD: А ещё если cl.exe использовать для компиляции в VS Code, то кириллицу не поддерживает вообще почему-то, даже если setlocale прописываешь. Интересно, почему так
0
|
|
|
Модератор
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
|
|
| 10.04.2025, 15:31 | |
|
Просто я к VS 2008 привык. У меня ещё есть VS 2017, но пользуюсь ей когда уж совсем никак.
Кстати, от Windows 7 тоже не хочу отказываться!
1
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||
| 10.04.2025, 15:41 | |||
![]() Просто учитесь работать с Юникодом. Добавлено через 5 минут Добавлено через 3 минуты То есть, какой бы компилятор ни был, важны след. аспекты: 1. Кодировка исходников. 2. Кодировка консоли, в какой кодировке она осуществляет ввод/вывод. 3. Компилятор так же должен знать в какой кодировке принимает ваши исходники. setlocale(), как можно понять, напрямую к этим трем пунктам отношения не имеет.
2
|
|||
|
фрилансер
6455 / 5657 / 1129
Регистрация: 11.10.2019
Сообщений: 15,070
|
||
| 10.04.2025, 18:04 | ||
|
Но я перешёл на VS2019, а винда сменилась на 10 при покупке ноута. И я не жалею ни разу Десятка просто удобнее семёрки. А студия - ещё и официально бесплатная (community редакция)Так что, очень советую.
0
|
||
|
1 / 1 / 0
Регистрация: 17.11.2021
Сообщений: 45
|
|
| 10.04.2025, 19:06 [ТС] | |
|
Алексей1153, вообще даже Community редакция, на сколько я знаю, имеет определённые ограничения в плане лицензирования. На официальном сайте сказано примерно следующее:
1. Неограниченное количество пользователей может использовать Community-edition для проведения обучения, open-source разработки или научных исследований (и только для этого, "доля научных исследований" сюда не попадает, если она не равна 100%). 2. Если у вас не больше 250 компьютеров и меньше миллиона долларов оборота в год, вы можете использовать Community-edition для любых целей для 5 пользователей. Для остальных сценариев надо покупать лицензию. Понимаю, что это не особо важно для среднестатистического человека, просто захотелось добавить эту информацию, так как когда-то активно изучал эту тему и искал соответствующую информацию. Ну и можно с 10 винды на 11 перейти, например, ибо это тоже самое, просто немного красивее. Да и поддержка 10ки заканчивается в этом году (кроме, LTSC версии, ибо она будет до 2038 года поддерживаться), так что это ещё и актуально ![]() Ну и добавлю, что иногда требуется использовать именно определённую версию студии. Например, Unreal Engine 5 требует именно Visual Studio 2022, 2019 не подойдёт, её можно только с Unreal Engine 4 использовать. А ещё 2022 является 64-битной, что несомненный плюс для нынешних систем.
0
|
|
|
фрилансер
6455 / 5657 / 1129
Регистрация: 11.10.2019
Сообщений: 15,070
|
|||
| 10.04.2025, 19:33 | |||
![]() Кроме того, меня вполне эти два пункта устраивают.
0
|
|||
|
1 / 1 / 0
Регистрация: 17.11.2021
Сообщений: 45
|
||||||
| 10.04.2025, 19:43 [ТС] | ||||||
|
В общем, я переписал код чутка, согласно вашим замечаниям, господа:
Стало реально лучше и понятнее, так что ещё раз всем большое спасибо. У меня появился вопрос Можно ли создать наследующий класс у наследующего класса? Например, вот у меня есть основной класс Vehicle, у него есть наследующий класс Car. Можно ли пойти дальше и у этого наследующего класса Car создать свои наследующие классы? Например, Truck (грузовик), Sedan (седан) и т.д?
0
|
||||||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 10.04.2025, 20:11 | |
|
1
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 10.04.2025, 20:14 | |
|
Реальный пример иерархии классов:
1
|
|
| 10.04.2025, 20:14 | |
|
Помогаю со студенческими работами здесь
20
Автоматическая генерация классов С ++ с UML диаграмм классов. Наследование в с++. Абстрактные классы. WhiteStarUML
решение задачи Конструкторы и деструкторы, Наследование, Множественное наследование. Полиморфизм Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
|
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 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|