c ++具有相同类名的标头

时间:2013-03-15 00:40:32

标签: c++ header

我是一名工科学生,而不是一名非常强大的程序员。我的一项任务包括使用openGL创建VR程序。我已经获得了一个广泛使用gmtl标题的模板(我真的不想重写)。该分配需要在模拟中实现一些sixense位置跟踪器硬件,但是,sixense硬件和gmtl的头部都有许多具有相同名称的类(Plane,Line等)。有什么我可以做的,既不涉及通过大量的代码和重命名的东西?

1 个答案:

答案 0 :(得分:2)

正如评论者所说,他们在不同的名称空间中,所以你应该没问题,只要你完全符合命名空间,这也是一个好习惯:

namespace foo { int value; }
namespace bar { int value; }

int main()
{
    foo::value = 1;
    bar::value = 2;
    return 0;
}

如果你鲁莽地使用using namespace,你只会遇到麻烦:

namespace foo { int value; }
namespace bar { int value; }

using namespace foo;
using namespace bar;

int main()
{
    value = 1; // which value is this???
    return 0;
}

实际上,如果你有一个结构良好的模块化代码,那么在同一个源文件中使用两个具有相同名称的类是非常罕见的,并且通常这些类做同样的事情,这意味着你可以在“转换”源文件中隔离详细的完全限定类型名称,并继续在其他源文件中使用using namespace