Проблемы с использованием компилятора Borland C ++ (версия 5.5) - PullRequest
2 голосов
/ 15 марта 2011

Объявление:

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

Определение:

#include "sample.h"

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

Но с этим определением я получил эту ошибку:

Ошибка E2038. \ Sample.cpp4: Здесь невозможно объявить или определить 'b :: Classe :: Classe ()'

Все отлично работает при изменении источника на:

#include "sample.h"

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

Как можно скомпилировать без измененийвесь код?

Это не мой выбор.На самом деле, я разработчик в среде Linux, и я никогда не думал, что буду снова разрабатывать на Windows.Это для конкретного клиента, который работает только с компилятором Borland C ++.

Я нашел эту вики-страницу от Embarcadero.Это не очень помогает.

Я сдаюсь.Я делаю то, что сказал Реми.

Ответы [ 2 ]

2 голосов
/ 15 марта 2011

Попробуйте удалить блок пространства имен в файле .cpp и просто указать весь конструктор:

#include "sample.h"

a::b::Classe::Classe(){} 
0 голосов
/ 15 марта 2011

Если все объявления находятся в одном блоке, вы можете попробовать изменить namespace b { } на struct b { };.

...