使用两个不同命名空间中的一个类

时间:2014-02-28 09:50:00

标签: c++ namespaces

我在一个名称空间中存在一些遗留代码存在问题。称之为A.然后在一个新项目中,我们从头开始并将所有代码放在不同的命名空间中。称之为B。

现在A的一些代码在项目开始时被移到了B,最近我们意识到我们需要使用比我们想要的更多的遗留代码来满足最后期限。

我现在的问题是我有一个Foo类,它位于命名空间A和B中。这没关系,自然编译得很好。

但是,在新代码和遗留代码的边界处,有一些现在重复的类需要相同。否则,很难在新代码和旧代码之间传递数据。

新代码使用B :: Foo访问Foo,遗留代码使用A :: Foo或仅在某些地方使用Foo和using指令访问它。

我想要的是A :: Foo,B :: Foo或Foo指向相同的实现(B :: Foo版本)。这可能吗?两个Foo类的公共接口当然是相同的。

1 个答案:

答案 0 :(得分:0)

这是你想要的吗?

namespace B {
    class Foo { /* ... */ };
}

namespace A {
    using B::Foo;
}