![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
FlySabaka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 24.9.2010 Где: г.Новосибирск Репутация: нет Всего: нет |
mes, bsa, ещё раз спасибо за помощь
![]() |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
кстати для удобства NUMBER я бы сделал не дефайном, а енумом и внутри класса..
|
|||
|
||||
Crafty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 3.11.2008 Репутация: 12 Всего: 14 |
я бы вместо этой функции лучше бы перегрузил оператор + и +=, так было бы удобней и наглядней работать с классом. |
|||
|
||||
FlySabaka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 24.9.2010 Где: г.Новосибирск Репутация: нет Всего: нет |
Crafty, поскольку я пишу "учебный" код, то я и перегрузку операций сделаю. У меня ещё все в переди
![]()
Пока не оч понимаю, а в чём будет заключаться удобство? |
|||
|
||||
mes |
|
||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
define таит в себе очень много проблем.. например игнорирование области видимости, которое заставляет выбирать для него длинные имена, чтоб избежать коллизии.. В общем придет с опытом.. а пока возьмите за правило не использовать дефайн, где можно обойтись другими средствами вот например дефайн удобно использовать как задание опции при компиляции.. т.е. что укажете компилятору, то он и подставит.. Но в таких случаях желательно использовать более уникальное имя и дать возможность его переопределить "снаружи". т.е. для Вашего случая выглядело бы примерно так :
Использование енума приносит ряд преимуществ, 1. зависимость от дефайна в одном месте, в остальном используется сам енум 2. удобство имени / отсутствие проблем с "внешними " именами 3. независимость от значения дефайна.. т.е например дефайн использует длину в байтах, а в реализации Вам удобнее мерять интегерами, тогда
4. действие дефайна становится локальным (при использовании #undef) и еще множество мелочей о которых сразу и не вспомнить ![]() Это сообщение отредактировал(а) mes - 8.10.2010, 20:54 |
||||
|
|||||
FlySabaka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 24.9.2010 Где: г.Новосибирск Репутация: нет Всего: нет |
mes, признаться честно преимущество на данный момент мне всё равно не ясно (и где-то там, в подсознании быть может, предложенная идея кажется полезной). Про коллизии, define и длинные имена это я понял. В любом случае, совету опытных я последую.
FIX: mes, вот теперь более понятны преимущества, спасибо за доходчивый ответ ![]() P.S. Первоначально я вообще хотел использовать динамические массивы, ибо меня напрягают искусственные ограничения на длину числа. Но вот посмотрел я, что на просторах интернета realloc ругают, и хают, и отказался от этой идеи (имеется в виду применение realloc в c++). Не представляю как грамотно "удлинить"/"укоротить" число (читай массив), не используя realloc (есть конечно вариант с введением временной переменной нужного размера, и копирования первого массива с последующий дозаписью новых цифр, но некрасиво ведь по-моему) Это сообщение отредактировал(а) FlySabaka - 8.10.2010, 18:17 |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
http://cplusplus.com/reference/stl/vector/ |
|||
|
||||
FlySabaka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 24.9.2010 Где: г.Новосибирск Репутация: нет Всего: нет |
mes, да-да, это я видел. может быть создам HugeInteger v.2. с использованием vector. В любом случае и такая реализация - неплохая практика для начинающего изучение C++. Тут не цель главное, а процесс
![]() |
|||
|
||||
mes |
|
||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
ну вот навскидку ситуация, которая при невнимании к варнингам, может одарить долгими часами дебага
![]() Это сообщение отредактировал(а) mes - 8.10.2010, 18:44 |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |