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

Возращение результата функции в виде указателя на объект - C++

Восстановить пароль Регистрация
 
blackfxx
Сообщений: n/a
23.09.2010, 11:09     Возращение результата функции в виде указателя на объект #1
есть функция
C++
1
2
3
4
5
6
My_Class* preprocessing(const My_Class* obj)
{
My_Class* Result = new My_Class();
...
return Result;
}
внутри неё создается указатель на локальный объект, проводятся действия и он возращается как результат функции. Читал в статье то, что так делать нежелательно.

вот пример статьи
C++
1
2
3
4
5
6
7
8
Complex&
Complex::Add(const Complex& x)
{
  Complex result;
  result.real = real + x.real;
  result.imaginary = imaginary + x.imaginary;
  return result;
}
При выходе из метода автоматическая переменная result уничтожается, и память, выделенная для нее, освобождается. Поэтому результат Add – ссылка на несуществующую память. Результат подобных действий непредсказуем. Иногда программа будет работать как ни в чем не бывало, иногда может произойти сбой, иногда результат будет испорчен.
подходит ли это к моему случаю, и если да то что тогда делать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2010, 11:09     Возращение результата функции в виде указателя на объект
Посмотрите здесь:

C++ Возращение параметра из функции
Создание указателя на объект и выделение памяти C++
C++ Приведение void указателя к определенному типу с сохранением результата
Выражение должно иметь тип указателя на объект C++
C++ удаление указателя на объект класса
C++ Выделение памяти оператором new в функции и возращение ею этого значения
C++ Передача указателя в класс на объект другого класса
C++ Статические функции: добавления указателя (типа AbstractClass) на объект данного класса

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
23.09.2010, 11:20     Возращение результата функции в виде указателя на объект #2
у тебя нормально, указатель уничтожается, но адрес остаётся
важно потом освободить через delete
blackfxx
Сообщений: n/a
23.09.2010, 11:24     Возращение результата функции в виде указателя на объект #3
Спасибо за ответ, про delete не забываю)
Yandex
Объявления
23.09.2010, 11:24     Возращение результата функции в виде указателя на объект
Ответ Создать тему
Опции темы

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