Pregunta

Declaración:

namespace a {
    namespace b {
        class Classe {
           public:
         Classe();
        };
    }
}

Definición:

#include "sample.h"

namespace a {
     b::Classe::Classe(){}
}

Pero con esta definición obtuve este error:

Error E2038. Sample.cpp 4: No se puede declarar o definir 'B :: Classe :: Classe ()' aquí

Todo funciona bien cuando cambia la fuente a:

#include "sample.h"

namespace a {
     namespace b {
          Classe::Classe(){}
     }
}

¿Cómo puedo compilar sin cambiar todo el código?

No es mi elección. De hecho, soy un desarrollador en un entorno de Linux, y nunca pensé que volvería a desarrollar en Windows. Es para un cliente específico que solo funciona con el compilador de Borland C ++.

encontré esta página wiki de Embarcadero. No ayuda mucho.


Me rindo. Estoy haciendo lo que dijo Remy.

¿Fue útil?

Solución

Intente eliminar el bloque de espacio de nombres en el archivo .cpp y simplemente califique todo el constructor:

#include "sample.h"

a::b::Classe::Classe(){} 

Otros consejos

Si todas las declaraciones están en un bloque, podría intentar cambiar namespace b { } a struct b { };.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top