¡Hola!
Me ha pasado un caso curioso con una clase que tiene un miembro
static definida en una dll. Me explico
dll.h
class __declspec (dllexport) A
{
public:
static int valor;
PinrtOut ()
{
TRACE1(valor);
}
}
dll.cpp
A::valor#;
main.h
class B:A
{
}
main.cpp
A::valor;
{
A objeto;
objeto.valor = 34;
objeto.PrintOut();
}
Bien, sucede que el valor dado en "main.cpp" valor objeto.valor = 34
cuando entra en PrintOut ésta imprime 23
¿Se te ocurre a que es debido? aunque tengo alguna idea y el problema
radica en que estoy obligado a declarar A::valor en las dos rutinas y
claro el compilador crea dos instancias de A::valor ¿se podría hacer
que él solo viera una? o alguna idea de como solventar este problema.
Se me ocurren definir rutinas que suplan esta deficiencia, pero yo
buscaba algo menos complicado.
Un millón de gracias
Josemi
Leer las respuestas