|
1 / 1 / 0
Регистрация: 13.11.2017
Сообщений: 80
|
||||||
Классы и конструкторы09.04.2018, 14:32. Показов 1547. Ответов 17
Метки нет (Все метки)
Вообщем, вот мой код. Но мне сказали убрать все "cout" и вместо этого сделать так, что бы функции возвращали значения (я не шарю в этом), и так же нужно добавить конструктор. Буду очень благодарен за помощь
![]()
0
|
||||||
| 09.04.2018, 14:32 | |
|
Ответы с готовыми решениями:
17
Конструкторы и классы
Классы и конструкторы в c++ |
|
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
|
||||||
| 09.04.2018, 18:02 | ||||||
|
Какой конструктор то нужно добавить?
0
|
||||||
|
1 / 1 / 0
Регистрация: 13.11.2017
Сообщений: 80
|
||||||
| 09.04.2018, 18:57 [ТС] | ||||||
|
Вообще конструктор можно любой. Спасибо большое за помощь. Как я понял вот в этой части кода 3 конструктора, можешь пожалуйста объяснить что делает последний?
0
|
||||||
|
"C with Classes"
|
|
| 09.04.2018, 19:06 | |
|
0
|
|
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
||
| 09.04.2018, 20:15 | ||
|
0
|
||
|
1 / 1 / 0
Регистрация: 13.11.2017
Сообщений: 80
|
|
| 09.04.2018, 20:20 [ТС] | |
|
А это нормально что получаются такие большие значения в разности, произведении, частном, прибавлении и умножении на число таких дробей как 2/4 и 6/8 ?
0
|
|
|
1 / 1 / 0
Регистрация: 13.11.2017
Сообщений: 80
|
|
| 09.04.2018, 20:28 [ТС] | |
|
Как я понял, для выполнения какой либо операции, значения берутся из предыдущей операции. К примеру в произведении двух дробей берутся не 2/4 и 6/8, а 2/4 и 96/128.
Можно ли это исправить, что бы для всех операция брались дроби только 2/4 и 6/8 ?
0
|
|
|
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
|
|
| 09.04.2018, 20:59 | |
|
BQ 201, Тогда смысл возвращать что-то в функциях как ты написал? Убираешь возврат и внутри функции делаешь в объявленом временном экземпляре операции и выводишь внутри функции, но это тот же cout, от которого ты просишь избавиться.
Если нужно постоянно с теми же значениями, то перед каждой функцией задавай конкретные (в примере, что я привел, через SetValues)
0
|
|
|
1 / 1 / 0
Регистрация: 13.11.2017
Сообщений: 80
|
|
| 09.04.2018, 21:17 [ТС] | |
|
Готово, теперь результаты те которые нужны, но у меня еще один вопрос. В операции сравнения дробей, в первой части сравниваются дроби 6/8 и 2/4, но во второй части (d2,d3) какие дроби сравниваются здесь?
0
|
|
|
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
|
||
| 09.04.2018, 21:20 | ||
|
Для d2 срабатывает конструктор с параметрами, который задает значения 2,4. В d3 копируются значения из d2. Просто привел для примера вывод результата, когда дроби равны. Единственное, т.к. нет сокращений дробей, то сравнение проходит конкретно по параметрам числитель и знаменатель, переделай как тебе надо, как с тем же делением что было
0
|
||
|
309 / 221 / 74
Регистрация: 23.05.2011
Сообщений: 981
|
|||||||||||
| 09.04.2018, 21:24 | |||||||||||
|
SuperKir,
вместо
noexcept).
0
|
|||||||||||
|
1 / 1 / 0
Регистрация: 13.11.2017
Сообщений: 80
|
|
| 09.04.2018, 21:26 [ТС] | |
|
То есть во второй часть сравнивается дробь 2/4 сама с собой?
0
|
|
|
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
|
|
| 09.04.2018, 21:28 | |
|
BQ 201, нет, сравниваются дроби с одинаковыми значениями.
New man, смотря кому лучше)
0
|
|
|
1 / 1 / 0
Регистрация: 13.11.2017
Сообщений: 80
|
|
| 09.04.2018, 21:30 [ТС] | |
|
Ну тогда на этом все, всем спасибо большое за помощь
0
|
|
|
309 / 221 / 74
Регистрация: 23.05.2011
Сообщений: 981
|
||||||
| 09.04.2018, 21:44 | ||||||
|
SuperKir, всем лучше
![]() В итоге выходит, что мы конструктор объявили, но по факту он такой же, какой и был. И ещё неплохо сделать Drob()=default;В итоге ничего не теряешь, а компилятор спокойно объявляет тип std::is_trivial<Drob>::value==true и во всяких реаллокациях стандартных векторов заменяет копирование на memmove.Ну, и вот код, который подтверждает, что Drob() = default; делает то же, что и предыдущий.Кликните здесь для просмотра всего текста
Добавлено через 7 минут И да, я предпочитаю, чтобы за меня код писали IDE, компилятор, мальчишка-индус, парни со стэковерфлоу, кто угодно, а не я ![]() =default; очень приятен в этом плане.
0
|
||||||
|
1 / 1 / 0
Регистрация: 13.11.2017
Сообщений: 80
|
|
| 09.04.2018, 21:51 [ТС] | |
|
Хорошо учту это в будущем
0
|
|
|
Велосипедист...
353 / 220 / 73
Регистрация: 15.12.2015
Сообщений: 785
|
||
| 09.04.2018, 21:56 | ||
![]() Там же обычное почленное копирование идет, которое компилятор сам сделает, если нужно.
0
|
||
|
309 / 221 / 74
Регистрация: 23.05.2011
Сообщений: 981
|
||||||
| 09.04.2018, 22:12 | ||||||
|
Captain Maxee, ну,
=default; именно это и делает.А ещё делает то же самое для присваивания, move присваивания и т.п. Добавлено через 13 минут Сходу не могу придумать, для чего это можно использовать. Разве что контроль над ресурсом. Пусть Resource — тяжёлый ресурс, выделение которого мы хотим проконтролировать. То есть, при копировании, нам надо что-то дополнительно обработать. Пусть будет так, что он создаётся фабрикой, которую можно вызывать только в один поток. А вот move конструктор у него не требует никаких действий. Из-за этого нам для класса, который содержить поле Resource, надо явно прописать copy-конструктор, но в то же время при объявлении хотя бы одного такого дефолтный move конструктор не появляется. И это можно решить так:
1
|
||||||
| 09.04.2018, 22:12 | |
|
Помогаю со студенческими работами здесь
18
Классы и конструкторы Конструкторы и классы Классы. Конструкторы. Деструкторы Классы, конструкторы (найти ошибку)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|