我在向现有库实现一些新代码时遇到问题。该库已经引用了一个名为“foo”的类。相同的名称在另一个头文件中用作命名空间,必须包含该头文件才能实现新功能。由于这两个头文件都是遗留代码库的一部分,我无法修改它们。因此,我在这里寻找任何方法来避免编译器错误(C2757:具有此名称的符号已存在,因此该名称不能用作命名空间名称)。我不确定这是否可能。因此,任何帮助都将不胜感激。谢谢
为了清楚起见,这里是该问题的示例代码说明:
标题A.h
class foo
{}
标题B.h
namespace foo
{
class ABC{}
}
标题C.h
#include <HeaderA.h>
#include <HeaderB.h>
using namespace foo;
class Toimplement{
ABC a; //Throws Error C2757
}
最佳答案
您可以尝试以下解决方法:
namespace bar {
#include "HeaderA.h"
}
#include "HeaderB.h"
...
bar::foo fooObject;
foo::ABC abcObject;
关于c++ - 是否可以避免 C++ 编译器错误 (C2757),其中 2 个不同的头文件包含相同的命名空间和类符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4566833/