Ver Mensaje Individual
  #4 (permalink)  
Antiguo 15/06/2015, 05:15
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: ¿clases con tipo?

Cita:
Iniciado por dehm Ver Mensaje
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
  1. #include <iostream>
  2.  
  3. #define MACRO_CLASS(nombre) \
  4. class nombre \
  5. { \
  6.   public: \
  7.     nombre( ) { std::cout << #nombre << " se ha creado con una macro" << std::endl; } \
  8. }
  9.  
  10. MACRO_CLASS(test); // Declaramos una clase "test"
  11. MACRO_CLASS(otraClase); // Declaramos una clase "otraClase"
  12.  
  13. int main( )
  14. {
  15.   // Al llamar al constructor de "t" se imprimirá un mensaje referente a la clase "test"
  16.   test t;
  17.   // Al llamar al constructor de "c" se imprimirá un mensaje referente a la clase "otraClase"
  18.   otraClase c;
  19. }

Un saludo.