Cita:
Iniciado por dehm quiero decir, poner una macro antes del nombre de la clase.
Piensa que las macros no son más que un ALIAS. Antes de compilar se ejecuta el precompilador que, entre otras cosas, localiza las MACROS y las sustituye, tal cual, por el código que corresponda, de tal forma que el compilador recibe código C++ completo, sin macros.
Por este motivo las macros pueden contener cualquier cosa y modificar prácticamente cualquier elemento de C++.
Un ejemplo tonto para ilustrar el caso: la macro en cuestión crea una clase.
Código C++:
Ver original#include <iostream>
#define MACRO_CLASS(nombre) \
class nombre \
{ \
public: \
nombre( ) { std::cout << #nombre << " se ha creado con una macro" << std::endl; } \
}
MACRO_CLASS(test); // Declaramos una clase "test"
MACRO_CLASS(otraClase); // Declaramos una clase "otraClase"
int main( )
{
// Al llamar al constructor de "t" se imprimirá un mensaje referente a la clase "test"
test t;
// Al llamar al constructor de "c" se imprimirá un mensaje referente a la clase "otraClase"
otraClase c;
}
Un saludo.