Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
Lawliet32
0 / 0 / 0
Регистрация: 03.12.2009
Сообщений: 22
#1

Конструкторы/Деструкторы - C++

26.12.2009, 17:00. Просмотров 1245. Ответов 4
Метки нет (Все метки)

Доброго времени суток!

Есть проблемка... после выполнении программа вылетает (без ошибок, просто выбивает в Windows программирую на BC 3.1)

думаю что беда в констр/деструкторе:
Код
HighPrecision::HighPrecision()
{
	count=0;
	nums=new Nums[MAX];
}

HighPrecision::~HighPrecision()
{
	count=0;
	delete nums;
}

HighPrecision::Nums::Nums()
{
	posp=0;
	dcount=0;
	num=new char[255];
	mun=new int[255];
}

HighPrecision::Nums::Nums(const Nums &n)
{
	this->posp=n.posp;
	this->dcount=n.dcount;
	this->num=new char[255];
	for (int i=0; i<this->dcount; i++)
		this->num[i]=n.num[i];
}

HighPrecision::Nums::~Nums()
{
	posp=0;
	dcount=0;
	delete num;
	delete mun;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2009, 17:00     Конструкторы/Деструкторы
Посмотрите здесь:

C++ Конструкторы и деструкторы
C++ Классы. Конструкторы. Деструкторы
C++ Конструкторы и деструкторы
C++ Конструкторы и деструкторы
Конструкторы и деструкторы C++
Пустые конструкторы и деструкторы C++
Конструкторы и деструкторы C++
C++ Списки, конструкторы, деструкторы
C++ Конструкторы и деструкторы
Конструкторы и деструкторы C++
C++ Конструкторы и деструкторы
Конструкторы и деструкторы C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
17192 / 5446 / 337
Регистрация: 30.03.2009
Сообщений: 14,780
Записей в блоге: 26
26.12.2009, 19:51     Конструкторы/Деструкторы #2
Зачем "delete num" 2 раза?
rangerx
1921 / 1530 / 139
Регистрация: 31.05.2009
Сообщений: 2,892
26.12.2009, 19:59     Конструкторы/Деструкторы #3
Цитата Сообщение от Evg Посмотреть сообщение
Зачем "delete num" 2 раза?
На всякий случай, если вдруг с первого раза не вышло

Добавлено через 3 минуты
А там оказывается num и mun, а не два раза num

Добавлено через 1 минуту
Lawliet32, память выделенная под массив освобождается при помощи delete[]
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
17192 / 5446 / 337
Регистрация: 30.03.2009
Сообщений: 14,780
Записей в блоге: 26
26.12.2009, 22:00     Конструкторы/Деструкторы #4
Опс... на маленьком экране и не заметил...
CheshireCat
Эксперт С++
2910 / 1238 / 78
Регистрация: 27.05.2008
Сообщений: 3,321
26.12.2009, 23:41     Конструкторы/Деструкторы #5
Естессно, вылетает. У тебя ошибка в конструкторе копирования
HighPrecision::Nums::Nums - num ты инициализируешь, а mun - где ???
Yandex
Объявления
26.12.2009, 23:41     Конструкторы/Деструкторы
Ответ Создать тему
Опции темы

Текущее время: 17:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru