Hola,
Tengo una aplicación en la que todo parece que va bien hasta que pasado un tiempo,que nunca es el mismo, se cae.Parec que es un pisotön de memoria.
He estado mirando y no se si puede ser por esto:
class C;
class D;
class A{
A();
Ã();
};
A::A()
{
p = new C;
q = new D;
A::Ã()
{
delete p;
delete q;
}
}
class B{
A* a;
void init(A* _a);
};
void B::init(A* _a )
{
a = _a;
}
main()
{
A* a = new A();
B b;
b.init(a);
}
En la llamada b.init(a) ¿se llama al destructor de la clase A cuando _a sale de su ambito y por consiguiente los punteros c y d están apuntando a basura?.O como
es un puntero lo que se le pasa al método lo que se destruye es el puntero y no a lo que apunta.
Si este es el caso se solucionaría con un operador de asignación donde se asigne memoria a dichos punteros.¿no?
Saludos