【发布时间】:2011-04-02 19:17:35
【问题描述】:
我必须设计一个 Font 类,该类将具有跨平台或不同库的多个实现(例如 Win32 GDI 或 FreeType)。所以基本上会有单个共享头/接口文件和多个 .cpp 实现(在构建时选择)。我宁愿保持公共接口(头文件)不受任何实现细节的影响,但这通常很难实现。字体对象必须拖动某种私有状态 - 例如 GDI 中的句柄,或内部的 FreeType 面对象。
在 C++ 中,跟踪私有实现细节的最佳方法是什么?我应该在实现文件中使用静态数据吗?
编辑:找到这篇关于这个主题的精彩文章:Separating Interface and Implementation in C++。
附言我记得在 Objective-C 中,有一些私有类别允许您在私有实现文件中定义类扩展,从而形成非常优雅的解决方案。
【问题讨论】:
标签: c++