En C++ necesito que una función retorne un arreglo de objetos, algo así

Objeto[] funcion(int arg){
Objeto retorno[2];
retorno[0]=new Objeto();
retorno[1]=new Objeto();
return retorno;
}

sin embargo, el lenguaje no soporta este tipo de sintaxis.
No obstante, lo que se puede retornar es un puntero a un array.
En efecto,

el nombre de un array es la dirección del primer elemento del array, por ende, los arrays son punteros (>>)

por lo tanto, para hacer funcionar el código anterior podríamos cambiarlo a

Objeto* funcion(int arg){
Objeto array[2];
array[0]=new Objeto();
array[1]=new Objeto();
Objeto* retorno=array;//conversión implícita
return retorno;
}

 

 

Este sitio utiliza cookies.    Leer más