声明:
namespace a {
namespace b {
class Classe {
public:
Classe();
};
}
}
定义:
#include "sample.h"
namespace a {
b::Classe::Classe(){}
}
但是根据这个定义我得到了这个错误:
错误E2038。\ sample.cpp 4:不能 声明或定义 'b :: Classe :: Classe()'这里
将源更改为:
时,一切正常#include "sample.h"
namespace a {
namespace b {
Classe::Classe(){}
}
}
如何在不更改整个代码的情况下编译?
这不是我的选择。事实上,我是Linux环境中的开发人员,我从未想过我会再次在Windows上开发。它适用于仅适用于Borland C ++编译器的特定客户。
我从Embarcadero找到了this wiki page。它没什么用。
我放弃了。我正在做雷米说的话。
答案 0 :(得分:2)
尝试删除.cpp文件中的命名空间块,并且只限定整个构造函数:
#include "sample.h"
a::b::Classe::Classe(){}
答案 1 :(得分:0)
如果所有声明都在一个块中,您可以尝试将namespace b { }
更改为struct b { };
。