Implementar metodos de una clase anonima

Iniciado por 4dr14n31t0r, 24 Enero 2017, 20:15 PM

0 Miembros y 1 Visitante están viendo este tema.

4dr14n31t0r

¿Como implemento el metodo 'foo' fuera de la clase en este caso?
Código (cpp) [Seleccionar]
class
{
    public:
        void foo(void);
} o;
No me puedo referir al metodo desde fuera del mismo por que para eso necesito el nombre de la case, pero esta es anonima.

ivancea96

Nunca se me dio este caso (no es nada recomendable hacer una clase anónima y definir luego sus miembros fuera, no debería haber razones apra ello).

En cualquier caso, te propongo una posibilidad:

Código (cpp) [Seleccionar]
void decltype(o)::foo(){
    // ...
}


decltype, de C++11, obtiene en tiempo de compilación el tipo de lo que le metas dentro.

Por ejemplo:
Código (cpp) [Seleccionar]
int n = 5;
decltype(n) j = 7;

Ambos son int.

Puedes usarlo, admeás, en templates o macros.