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

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

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

Есть проблемка... после выполнении программа вылетает (без ошибок, просто выбивает в 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++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 320
Регистрация: 30.03.2009
Сообщений: 14,125
Записей в блоге: 26
26.12.2009, 19:51     Конструкторы/Деструкторы #2
Зачем "delete num" 2 раза?
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
26.12.2009, 19:59     Конструкторы/Деструкторы #3
Цитата Сообщение от Evg Посмотреть сообщение
Зачем "delete num" 2 раза?
На всякий случай, если вдруг с первого раза не вышло

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

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

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