内外命名空间
QtCreator源码中,每一个子项目都有内外两层命名空间,一个是外部的,一个是内部的。
示例如下
namespace ExtensionSystem {
namespace Internal {
class IPluginPrivate;
class PluginSpecPrivate;
}
class EXTENSIONSYSTEM_EXPORT IPlugin : public QObject
{
...
};
} // namespace ExtensionSystem
其中
-
ExtensionSystem是外部的,其中的类等内容会被EXTENSIONSYSTEM_EXPORT导出,用户使用时可见。
-
ExtensionSystem::Internal是内部的,定义的都是内部私有类(参考公有私有类),不进行导出。譬如前置声明中的IPluginPrivate。
原创造福大家,共享改变世界
献出一片爱心,温暖作者心灵
来源:oschina
链接:https://my.oschina.net/u/4310950/blog/4270111