Hola Profesor_Falken:
No estoy seguro de entender tu planteamiento.
He desarrollado el constructor de la estructura en función de la solución que me propones:
Código C++:
Ver original#include <iostream>
#define NEW_POLIGONO(P) struct poligono P = {.n_lados = 4, .color ="verde"}
using namespace std;
struct poligono
{
int n_lados;
char color[20];
poligono(int n, const char* c)
{
n_lados=n;
}
};
int main()
{
NEW_POLIGONO(mipoligono);
cout<<mipoligono.n_lados<<" - "<<mipoligono.color<<endl;
return 0;
}
Y (obviamente) funciona. (Me apunto aprender a sacarle partido a las macros)
Pero no me da la flexibilidad que necesito o que quiero.
Sería algo así:
Código C++:
Ver originalstd::list<poligono>listapoligonos;
int num;
char aux[20];
char respuesta='S';
do
{
/*en algun momento del bucle de inserción de datos, me gustaría fijar algún dato de la estructura de forma que no tuviera que definirlo en caso de encontrarme varios repetidos.*/
/* Igualmente "desbloquear" ese dato cuando no me interese, y que me vuelva a pedir por él*/
std::cin>>num;
std::cin>>aux;
poligono P(num,aux);
listapoligonos.push_back(P);
std::cout<<"¿Quieres introducir otro poligono?"<<std::endl;
std::cin>>respuesta;
}
while (respuesta=='s' || respuesta=='S');
Gracias por la respuesta y disculpa si no la he entendido correctamente