Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.09.2009, 11:40   #1
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию длинная арифметика

вот попробовал начать реализовывать длинную арифметику. пока что просто перевести из int в массив и сделал это с помощью классов.
возникли некоторые ошибки
Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
//---------------------------------------------------------------------------
const DMAX=100;
typedef int thuge[DMAX];
class dlinnaya
{
        private: thuge dlinn1,dlinn2;
        dlinnaya::dlinnaya(int ne_dlinn);
        dlinnaya::dlinnaya(thuge dlinn1, thuge dlinn2);

};
//далее - конструктор
dlinnaya::dlinnaya(int ne_dlinn)
{
        thuge dlinn3;
        String str_chislo;
        str_chislo=IntToStr(ne_dlinn);
        int dlina_str=str_chislo.Length();
        for ( int i=1;i<=dlina_str;i++)
        {
                dlinn3[i]=str_chislo[dlina_str-i];
                cout<<dlinn3[i];
        }

}
dlinnaya::dlinnaya(thuge dlinn4, thuge dlinn5)
{
        for (int i=0;i<=DMAX;i++)
        {
        dlinn1[i]=dlinn4[i];
        dlinn2[i]=dlinn5[i];
        };

}

#pragma argsused
int main(int argc, char* argv[])
{
        int tt=12345;
        dlinnaya(tt);
        cin.get();
        return 0;
}
//---------------------------------------------------------------------------
Build
[C++ Error] dlin.cpp(44): E2238 Multiple declaration for 'tt'
[C++ Error] dlin.cpp(43): E2344 Earlier declaration of 'tt'
[C++ Error] dlin.cpp(44): E2285 Could not find a match for 'dlinnaya:linnaya()'
[C++ Warning] dlin.cpp(47): W8004 'tt' is assigned a value that is never used
[C++ Warning] dlin.cpp(47): W8004 'tt' is assigned a value that is never used
Dimarik вне форума Ответить с цитированием
Старый 16.09.2009, 12:02   #2
DarkElf_89
Пользователь
 
Регистрация: 05.09.2009
Сообщений: 22
По умолчанию

Вы в функции main() вызываете уже ваш перегруженный конструктор, но не создаете объект класса dlinnaya, поэтому и ругается. Правильнее сделать так :
Код:
int main(int argc, char* argv[])
{
        int tt=12345;
        dlinnaya a(tt);    //создаем объект класса, сразу вызываем перегруженный конструтор,
 который берет только один параметр, дальше если требуется то работаем уже
 с объектом класса, то есть с a
        cin.get();
        return 0;
}
P.S. Да, и еще, конструкторы следовало бы описать в секции public, а не в private ...

Последний раз редактировалось DarkElf_89; 16.09.2009 в 12:12.
DarkElf_89 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Длинная арифметика на C#(деление) Mr_Dark Общие вопросы .NET 1 21.06.2009 21:57
Длинная арифметика.Связанные списки Simply_angel Помощь студентам 2 25.05.2009 19:10
Длинная арифметика: деление Vadik(R) Помощь студентам 1 27.03.2009 12:08
Длинная арифметика (нужна помощь) RAVAL)) Паскаль, Turbo Pascal, PascalABC.NET 7 25.10.2008 15:13
Длинная арифметика DmT Помощь студентам 2 06.10.2007 22:43