将内部类公开给公共API的最佳方法是什么?

时间:2015-10-22 14:48:03

标签: c++ api class interface

我有一个使用其他库(dll)

的类的库
//DLL External library API: Foo library
namespace foo{
class Component( Elemement e ) {
...
}
} //foo namespace

现在我的库需要使用foo dll并使用它的一些功能和类,但不暴露Foo库类型,但有些“翻译”

// my developed library "Core"
namespace core{
class Component( Element e ){
...
}
}

公共API将公开类core :: Component和core :: Element,但实际上那些应该直接转换为foo :: Component和foo :: Element。想象一下,这个翻译需要为许多其他需要包装才能暴露的类完成。 处理这个问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

你正在寻找using指令吗?

namespace foo {
    class A {};
}

namespace core {
    using foo::A;
}

// use like
core::A a;