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

Деструктор - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Знание языка C++ тест, одно задание (казать в каких строчках есть ошибка) http://www.cyberforum.ru/cpp-beginners/thread873818.html
День добрый всем. Вот я тут нарвался на тестирование по C++. И попалось мне в этом тесте одно задание, которое я никак не могу понять, не могли бы вы помочь с разъяснением. Windows 7, VS 2011. Есть следующий код int _tmain(int argc, _TCHAR* argv) { typedef float(*n)(); goto nam; nam:
C++ Составить программу для вычисления значений функции F(x) на отрезке [A,B] с шагом Н.Результат представить ввиде таблицы, первый столбец которой—з Составить программу для вычисления значений функции F(x) на отрезке с шагом Н .Результат представить ввиде таблицы, первый столбец которой—значения аргумента,второй—соот* ветствующие значения функции: http://www.cyberforum.ru/cpp-beginners/thread873812.html
Как записать (экспонента) C++
ребята, как записать e^2.8*a?
C++ Проверить утверждение "результатами вычислений по формуле х^2+х+17, при 0 <=х <= 15, являются простые числа"
Составить программу для проверки утверждения: «Результатами вычислений по формуле х^2+х+17 при 0<=х<=15 являются простые числа». Все результаты вывести на экран.
C++ Графы! Алгоритм Флойда http://www.cyberforum.ru/cpp-beginners/thread873802.html
0 1 / \2 0 — 0 2 a=2; a=1; a=3; a=2; a=1; a=1; a=3; a=2; a=1; a=2; a=2; a=2; решил представить список смежности следующим образом. Возможно ли для него использовать алгоритм флойда?
Visual C++ Сканер IP - Адресов, Порт - сканер (в локальной сети) Доброе время суток) Написана программа для сканирования портов (указал диапазон 5900 - 5906), на данный момент программа работает только для Фиксированного ip-адреса (который вводим). // ScanPortDlg.cpp : implementation file // #include "stdafx.h" #include "ScanPort.h" #include "ScanPortDlg.h" #include <WinSock2.h> подробнее

Показать сообщение отдельно
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
22.05.2013, 02:03     Деструктор
yoghurt92, у вас в void operator+= (Math &val) утечка памяти.
C++
1
2
3
Math a(1, ,1);
Math b(2, 2);
a += b; //потеряли указатели на старые данные a
*this не всегда будет объектом сконструированным стандартным конструктором, поэтому надо в стандартном конструкторе выделять память под num1 и num2, инициализировав их нулями.
C++
1
Math():num1( new int(0) ), num2( new int(0) ) {}
C++
1
2
3
4
Math& operator+= (const Math &val) { //обычно возвращают ссылку чтобы использовать объект в сложных выражениях
*num1 = *val.num1;
*num2 = *val.num2;
}
 
Текущее время: 16:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru