Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
sash@

Как возвратить указатель на объект, созданный в методе?

19.03.2008, 11:09. Показов 5297. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Code
1
2
3
4
5
6
A* B::ReturnPtrA(){
   A a;
   a.Method1(a.Method2());
   //... 
   return &a;
}
Говорит, что нельзя возвращать указатель на автоматическую переменную.
А как возвратить указатель на объект, созданный в методе?
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.03.2008, 11:09
Ответы с готовыми решениями:

Создать указатель на динамически созданный объект
Всем доброй ночи ситуация в общем такая: На форме находится несколько объектов класса TImage(не столь важно) +по желанию пользователя их...

Как в методе веб-сервиса возвратить DataTable
Нужно сделать веб-сервис который будет принимать SQL-запрос и возвращать DataTable. Вопрос в том как возвратить DataTable так чтобы клиент...

Как возвратить указатель
Как из intova() возвратить указатель чтобы напечатать матрицу в main?? int main() { int n, m; while(!(n>=1 &&...

6
AnTr
19.03.2008, 11:51
A* B::ReturnPtrA()
{
A* a=new A;
a->Method1(a->Method2());
//...
return a;
}
AnTr
19.03.2008, 11:55
чутъ не зaбыл!
Oб уничтoжении oбъектa ты дoлжен пoзaбoтится сaм.
1 / 1 / 5
Регистрация: 22.07.2007
Сообщений: 366
10.04.2008, 18:52
Ты можешь передавать и ссылку на вновь созданный объект как
например
Code
1
2
   string a='OK';
   return a;
но только в случае если в классе string
class string
{
private:
char* buffer;
public:
string(const char* str)
{
buffer = new char[strlen(str)+1];
strcpy(buffer,str);
}
}
public:
определён дополнительный конструктор
Code
1
2
3
4
5
   string(string& str)
   {
      buffer = new char[strlen(str.buffer)+1];
      strcpy(buffer,str.buffer);
   }
и также переопределён оператор равно(=)
Code
1
2
3
4
5
6
7
8
 string & operator=(const string& str)
   {
      if (&str==this) return *this;
      delete[] buffer;
      buffer = new char[strlen(str.buffer)+1];
      strcpy(buffer,str.buffer);
      return *this;
   }
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 145
11.04.2008, 07:40
Привет All!
2 simplepilot:
Вы нам тут сказанули :
>Ты можешь передавать и ссылку на вновь созданный объект как
например
> ... (skipped)

Мои аплодисменты. А теперь про класс int и char ;-)

Без тени смущения, Andir!
0
1 / 1 / 5
Регистрация: 22.07.2007
Сообщений: 366
13.04.2008, 11:31
Меня приакалывают товарищи вроде Andir которые не могут разобраться в не очень сложных вещах, а начинают доколюбыватся к словам.
Специально для Andir поясню коротко идею того что происходит.
Да естественно ссылка на объект не передаётся, это лишь выглядит так, на практике создаётся новый объект на стороне , которая вызывает функцию потом этот объект копируется через оператор равно. Это и есть то часть того для чего придумывалось ООП и все эти конструкторы создающие копию объекта по ссылке. Открой книжку любую по ООП и там обязательно будет такой пример
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 145
14.04.2008, 07:55
2 simplepilot

>Меня приакалывают товарищи вроде Andir которые не могут разобраться в не очень сложных вещах, ...

А меня не прикалывают такие товарищи, как simplepilot, которые на обычный вопрос отвечают кучей умных слов, которых по-видимому и сами не понимают ...
Если бы кто-нить спросил меня как вывести на экран в языке С++ строчку 'Hello World !', а я при этом начал бы ему рассказывать про STL, ATL, MFC, и приводил бы при этом кучу кода ... Ну мягко говоря меня бы не поняли ...
Теперь по теме, я поапплодировал твоей находчивости, а не тому что ты написал ... эти строчки, ИМЕННО, можно найти в любой книжке, но толку от них никакого ... вопрос не был про класс string и переопределние операторов ... поэтому я и пожелал ещё услышать про int и char ...

>...Специально для Andir поясню коротко идею того что происходит...
Вот уж спасибо, никогда не думал, что мне ЭТО ТАК можно пояснить... Жаль только разработчиков ООП...

Парень я понимаю, что тебе негде пофлэймить по-нормальному и поэтому предлагаю перебраться ко мне в аську и поговорить ...

З.Ы. Кстати рассказики на твоём сайте классные !!! ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.04.2008, 07:55
Помогаю со студенческими работами здесь

Что значит константный указатель на объект, указатель на константный объект, и как это можно использовать?
Подскажите, что значит константный указатель на объект, указатель на константный объект, и как это можно использовать??

Как возвратить на сервер объект
Имеется приложение Java Spring MVC + ExtJS На бэкэнде в контроллере имеется метод добывающий по запросу GET данные из базы в виде матрицы...

Как получить ссылку на созданный экземпляр окна в другом методе?
Всем добра! создаю экземпляр окна: var logWindow = new LogWindow(); logWindow.Show(); как получить ссылку на созданный экземпляр...

Как функции возвратить ссылку на объект?
//Есть некая функция что писать перед функцией??? Инт написал. int func(){ // Создаем какой-то обьект Obj object_1; //что-то с ней...

Как возвратить типизированный объект из нетипизированной View
Привет всем. Допустим, есть форма, пользователь вводит там какие то данные, и они должны вернуться в контроллер в виде типизированного...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru