Un GetFoo
se utiliza generalmente cuando no desea copias de su clase/objeto. Por ejemplo:
class Foo
{
private:
Foo(){};
~Foo();
public:
static Foo* GetFoo(void)
{
static Foo foo;
return &foo;
}
int singleobject;
};
Usted puede acceder externamente a través de singleobject
Foo::GetFoo()->sinlgeobject
. Los constructores privados y los destructores evitan que su clase obtenga copias creadas.
Para el uso de static Foo foo
, debe tener constructores públicos declarados, lo que significa que siempre está accediendo a su clase, pero su clase también podrá obtener copias.
Con la variable global que corren el riesgo de conflictos de nombres. – VoidStar
Ver http://stackoverflow.com/questions/12186857/on-local-and-global-static-variables-in-c. –
Inicialización lenta. – iammilind