¿Se puede devolver un objeto creado localmente?
Publicado por Lalo (11 intervenciones) el 27/01/2003 16:18:40
Se puede hacer
A function
{
A function
{
Valora esta pregunta


0
#include <iostream>
#include <string>
class MiClase {
public:
std::string nombre;
MiClase(std::string n) : nombre(n) {}
};
MiClase crearObjeto() {
MiClase obj("Ejemplo");
return obj; // Se devuelve el objeto local
}
int main() {
MiClase miObjeto = crearObjeto(); // Se llama a la función y se recibe el objeto
std::cout << "Nombre del objeto: " << miObjeto.nombre << std::endl;
return 0;
}
MiClase* crearObjeto() {
MiClase* obj = new MiClase("Ejemplo");
return obj; // Se devuelve un puntero al objeto
}
int main() {
MiClase* miObjeto = crearObjeto(); // Se recibe el puntero
std::cout << "Nombre del objeto: " << miObjeto->nombre << std::endl;
delete miObjeto; // No olvides liberar la memoria
return 0;
}