C++ 我的课干扰了图书馆的课

C++ 我的课干扰了图书馆的课,c++,class,C++,Class,我目前正在一个3d可视化程序上编程,所以我编写了自己的Vector3类来进行一些方便的向量操作。在我需要加载一些网格之前,它工作得很好,我使用了一个外部库,它有自己的Vector3类。现在,编译器无法区分它们,我也无法同时更改它们,因为它们在代码中包含得太多了。 有人知道我如何为编译器分离它们吗 我曾考虑过围绕加载程序的包含创建一个名称空间,但在库实现中出现了错误 任何想法都将不胜感激 编辑 不幸的是,我自己的项目和库都没有自己的名称空间 (已解决) 好的,我通过删除库并使用eclipse自动重

我目前正在一个3d可视化程序上编程,所以我编写了自己的Vector3类来进行一些方便的向量操作。在我需要加载一些网格之前,它工作得很好,我使用了一个外部库,它有自己的Vector3类。现在,编译器无法区分它们,我也无法同时更改它们,因为它们在代码中包含得太多了。 有人知道我如何为编译器分离它们吗

我曾考虑过围绕加载程序的包含创建一个名称空间,但在库实现中出现了错误

任何想法都将不胜感激

编辑 不幸的是,我自己的项目和库都没有自己的名称空间

(已解决)
好的,我通过删除库并使用eclipse自动重构代码来解决这个问题。但如果不能做到这一点,我如何解决这个问题,在C++独立于IDE?->未标记为已应答的

在创建的类名及其内置类之前使用项目名称空间。 比如:

MyProject::Vector3D

xxx::Vector3D

其中“xxx”是内置Vector3D类所在的命名空间

不幸的是,我自己的项目和库没有自己的名称空间


解决办法是显而易见的。将项目放在命名空间中。如果Vector3确实没有任何名称空间,请使用::Vector3引用库中的Vector3。

名称空间是这里的解决方案。如果您遇到编译器/链接器错误,那么您需要编辑问题以包含一些代表性代码,然后我们可以帮助您修复它们。Ehm。我很确定这个库在它自己的名称空间中有它的
Vector3
类。。如果不是的话,那无论如何都不好。您使用的是
名称空间XXX
在任何地方都可以找到该库?@Xeo:人们希望OP将自己的类放在一个名称空间中……我和库的创建者都没有使用自己的名称空间。这仅仅是因为它只是原型,所以我们从来没有想过会有这种干扰,因为我们认为它不会被送出。不管怎样,现在我知道这个问题,并且可以在进一步的工作中避免它。@没有人,你不能把标题放在命名空间中,因为链接器如果它们实际上不存在,就找不到函数。C++中的范围操作符是<代码>::,不是<代码>。<代码>。我自己不使用库中的向量3。只有图书馆有。我认为以后添加命名空间是非常乏味的,但也许这是唯一的方法。