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

A* B::ReturnPtrA(){
 A a;
 a.Method1(a.Method2());
 //... 
 return &a;
}
Говорит, что нельзя возвращать указатель на автоматическую переменную. А как возвратить указатель на объект, созданный в методе?
4 ответа

Ты можешь передавать и ссылку на вновь созданный объект как например
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: определён дополнительный конструктор
string(string& str)
 {
 buffer = new char[strlen(str.buffer)+1];
 strcpy(buffer,str.buffer);
 }
и также переопределён оператор равно(=)
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;
 }


Привет All! 2 simplepilot: Вы нам тут сказанули : >Ты можешь передавать и ссылку на вновь созданный объект как например > ... (skipped)Мои аплодисменты. А теперь про класс int и char ;-)Без тени смущения, Andir!


Меня приакалывают товарищи вроде Andir которые не могут разобраться в не очень сложных вещах, а начинают доколюбыватся к словам. Специально для Andir поясню коротко идею того что происходит. Да естественно ссылка на объект не передаётся, это лишь выглядит так, на практике создаётся новый объект на стороне , которая вызывает функцию потом этот объект копируется через оператор равно. Это и есть то часть того для чего придумывалось ООП и все эти конструкторы создающие копию объекта по ссылке. Открой книжку любую по ООП и там обязательно будет такой пример


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