J'ai une bibliothèque C++, fournissant une API C native à son client. En fait, cette bibliothèque est un wrapper autour des appels d'instance de classe et l'API devrait fonctionner avec la même instance de classe, en utilisant son interface publique, par exemple:Éviter l'objet global dans la bibliothèque C++
// 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
};
La seule façon de fournir tous les appels d'API capacité à travailler avec le même instance Foo
je vois est d'utiliser l'instance globale de cette classe, singleton possible. Je veux éviter d'utiliser des variables globales, comment pourrait-on l'atteindre?