Форум программистов, компьютерный форум, киберфорум
Наши страницы

как написать функцию возвращающую объект с указателем на кучу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Массив строк http://www.cyberforum.ru/cpp-beginners/thread573681.html
Может кто то написать код, чтобы с массива строк выбрать одну рандомно, заранее благодарен..
C++ Рекурсивное нахождение простых чисел Дано число Х, определить количество простых чисел меньших Х. С использованием рекурсивных методов. Задача пустяковая, учу С#, а задание надо написать на С++.... Написал на С# все работает хорошо.... http://www.cyberforum.ru/cpp-beginners/thread573680.html
C++ Как подключить библиотеку TBB (параллельное программирование)?
Здравствуйте! Не могу подключить библиотеку TBB к VS 2008, Windows7Ultimate SP1. Делаю так http://habrahabr.ru/post/102670/. Начинает компилировать, потом выдает ошибку отсутствует tbb_debug.dll....
Проблемы с выводом на экран C++
После вывода результата, программа сохраняет данные в файл rezerv.txt, сохраняет нормально, а вот вывести эти данные на экран я не могу. Не работающий участок: if (number==3) {...
C++ Хватит ли барану веревки, чтобы дотянуться до травы http://www.cyberforum.ru/cpp-beginners/thread573655.html
Баран находится на острове диаметр которого 23 м. Баран привязан на берегу. У барана на шее верёвка, длина которой 12м. Означает ли это, что баран может есть траву с той территории, которая находится...
C++ Массивы. 1) Сформировать одномерный массив целых чисел, использую датчик случайных чисел. 2) Распечатать полученный массив. 3) Удалить первые 5 элементов массива. 4) Добавить в конец массива 3 новых... подробнее

Показать сообщение отдельно
ostapovilya
0 / 0 / 0
Регистрация: 15.02.2012
Сообщений: 58

как написать функцию возвращающую объект с указателем на кучу - C++

14.05.2012, 00:08. Просмотров 770. Ответов 9
Метки (Все метки)

уперся в следующее:

есть класс содержащий в себе указатель на динамическую память (кучу). В общем-то это массив размерность которого определяется при создании объекта. конструктор объекта кроме всего прочего, выделяет сколько нужно памяти и вносит ее адрес в соответствующее поле.

C++
1
2
3
4
5
class MyClass {
             ...
             type*  data;
             ...
}
соответственно деструктор освобождает эту память, во избежание утечек памяти.

кроме того есть метод класса, который должен вернуть значение - объект того же класса, но с измененными значениями динамической памяти. Исходный объект и память на которую он указывает должны остаться неизменными.

внутри метода - все просто: создаю локальный экземпляр объекта, изменяю его динамическую область. А вот как вернуть это в вызывающий контекст - убей бох не пойму. Если сделать просто

C++
1
2
3
4
5
6
MyClass MyClass::method(....) {
 
MyClass temp(....);
...
return temp; 
}
деструктор объекта похерит динамическую память и присвоение

C++
1
2
3
4
MyClass X(...);
MyClass Y(...);
...
Y = X.method(...);
заканчивается ошибкой кучи при выполнении.

Третий час сижу и ломаю голову, ничего не придумал. Что делать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.