【发布时间】:2014-07-23 14:30:54
【问题描述】:
我有一些 C++ 库,为它的客户端提供本地 C API。事实上,这个库是一些类实例的包装器,API 调用应该使用同一个类实例,使用它的公共接口,例如:
// library API, using class methods internally
MYDLL_API uint8_t __stdcall init();
MYDLL_API uint8_t __stdcall release();
MYDLL_API uint8_t __stdcall setSomething();
MYDLL_API uint8_t __stdcall doSomething();
// some inernal class
class Foo{
public:
void setSomething();
void doSomething();
private
// some state
};
提供所有 API 调用能力以使用相同的 Foo 实例的唯一方法是使用此类的全局实例,可能是单例。我想避免使用全局变量,怎么实现?
【问题讨论】: