Pregunta

¿Hay alguna forma de inicializar un subobjeto estático de una clase después de que Main () haya comenzado?

¿Fue útil?

Solución

Una forma de hacerlo es reemplazar los datos del miembro estático que funcionan el miembro estático.

Digamos que tienes esta clase:

class A
{
   static B static_b; //static member data
};

//.cpp
B A::static_b; //definition (required)

Entonces, en lugar de eso, puede definir su clase como:

class A
{
   static B static_b()  //static member function!
   {
       static B b;
       return b;
   }
};

Tenga en cuenta que no es seguro de subprocesos, pero también puede hacerlo a sabor a los subprocesos.

Otros consejos

Puede usar un puntero para este objeto:

class SomeClass{
public:
    static SomeOtherClass* p;
};

SomeOtherClass* SomeClass::p;    

void main(){
    SomeClass::p = new SomeOtherClass();
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top