Buenas,
Disculpa, en mi ejemplo con la macro yo entendia que estabas usando C y no C++.
En C++ efectivamente existen construcciones mas avanzadas como los constructores.
Respecto a tu problema, no se puede resolver de una forma muy sencilla con una variable global?
Puedes crearte una variable global llamada color_fijado. En principio estaria a null pero cuando quieras fijar un valor se lo asignas y la puedes volver a poner a null cuando quieras desactivar (lo mejor aqui seria crear una funcion que active/desactive).
Posteriormente en tu contructor lo podrias comprobar:
Código C++:
Ver originalpoligono(int n, const char* c)
{
n_lados=n;
if (color_fijado == NULL) {
else {
}
}
O mejor aun, tienes siempre un color_fijado y cuando llamas al constructor sin indicar el color utilizamos el color_fijado
Código C++:
Ver originalstruct poligono
{
int n_lados;
char color[20];
poligono(int n, const char* c)
{
n_lados=n;
}
otro constructor que utilice el color_fijado
poligono(int n)
{
n_lados=n;
}
};
Un saludo