Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с конструктором 
:(
    Опции темы
VAZik
Дата 24.8.2005, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 19.8.2005

Репутация: нет
Всего: нет



Есть следующиe классы
Код

class verylong
{
protected:
 char number [1024];
 int inc;
public:
 verylong ();
 friend istream& operator >> (istream& in, verylong& num);
 void get_string(char* str);
 verylong& operator* (int& a);
 verylong& operator= (int& a);
 char* display();
};

verylong::verylong()
{
 inc = 0;
 for (int i = 0; i < 1024; i++)
  number[i] = 0;
}

class long_binary : public verylong
{
 public:
  int convert_to_dec();
  char* convert_to_hex();
};

При выполнении запускается конструктор verylong, и не выполнив ни строчки из своего тела, передает управление функции power10().
Код

int power10 (int& exp)
{
 int result = 1;
 for (int i = 0; i < exp; i++)
 {
  result *= 10;
 }
 return result;
}

В которой exp = 200, и в результате вылетает ошибка.
Просто мистика какая-то...
В чем проблема?? Помогите кто чем может...
PM MAIL   Вверх
Artiom
Дата 24.8.2005, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

Репутация: нет
Всего: 17



Цитата(VAZik @ 24.8.2005, 11:49)
При выполнении запускается конструктор verylong, и не выполнив ни строчки из своего тела, передает управление функции power10().

Покажи код что и как запускаешь. У long_binary есть свой конструктор?


--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
Vaulter
Дата 24.8.2005, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 2
Всего: 22



Цитата
При выполнении запускается конструктор verylong

покажи main


--------------------
PM MAIL WWW ICQ   Вверх
VAZik
Дата 25.8.2005, 07:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 19.8.2005

Репутация: нет
Всего: нет



Был следующий код...
Код

int main()
{
 char ch;
 int switcher;
// unsigned int number;
 do
 {
 long_binary bin_number;
 verylong number;
  cout << setfill('.') << setiosflags(ios::left) << "Transfer direction:\n" << setw(26)
  << "Binary to Decimal"  << "1\n" << setw(26) << "Decimal to Binary" << "2\n" <<
  setw(26) << "Binary to Hexadecimal" << "3\n" << setw(26) << "Decimal to Hexadecimal" <<
  "4\n" << setw(26) << "Hexadecimal to Decimal" << "5\n" << setw(26) << "Octal to Decimal"
  << "6\n" << "Input: ";
  cin >> switcher;
  cout << "Input number to transfer: ";
  cin >> number;
  switch(switcher)
  {
   case 1:
    number = bin_number.convert_to_dec();
    break;
   case 2:

    break;
   case 3:
  //  number = bin_to_hex(number);
    break;
   case 4:
  //  number = dec_to_hex(number);
    break;
   case 5:
  //  number = hex_to_dec(number);
    break;
   case 6:
  //  number = oct_to_dec(number);
    break;
   default:
    cout << "Incorrect transfer direction!\n";
  }
//  cout << number.display();
  cout << "Continue transfer(y/n): ";
  ch = getche();
  cout << endl << endl;
 }
 while(ch == 'y');

 getch();
 return 0;
}

char dec_to_bin(int& decimal_number)
{
 char result[1024];
 int i = 0;
 while(decimal_number>=2)
 {
  result[i] = decimal_number%2 + '0';
  decimal_number = static_cast<int>(decimal_number / 2);
  ++i;
 }
 result[i] = decimal_number;
 return 0;
}

хотя после того, как я удалил dec_to_bin, а потом его снова вставил... ошибка мистическим образом испарилась... я вообще ничего не понимаю...
PM MAIL   Вверх
Artiom
Дата 25.8.2005, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

Репутация: нет
Всего: 17



Так dec-to_bin нигде же не вызывается. И функции power10 нигде нет. И что тут глючит?


--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
VAZik
Дата 25.8.2005, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 19.8.2005

Репутация: нет
Всего: нет



power10 описана выше...
в том то и дело, что dec_to_bin не вызывается... а ошибка пропала... в общем мистика какая-то... и ошибка была какая-то мистическая...
PM MAIL   Вверх
Guest
Дата 26.8.2005, 12:14 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











[quote] При выполнении запускается конструктор verylong, и не выполнив ни строчки из своего тела, передает управление функции power10().
Выделить всёкод C++
1:
2:
3:
4:
5:
6:
7:
8:
9:

int power10 (int& exp)
{
int result = 1;
for (int i = 0; i < exp; i++)
{
result *= 10;
}
return result;
}

В которой exp = 200, и в результате вылетает ошибка.

10^199 не помещается в int
  Вверх
_hunter
Дата 26.8.2005, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



само-собой... или long double юзай ( для приблищительных расчетов ) или ищи в факе тему о работе с большими числами


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0508 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.