[C con Clase] Problema con Clase.

Zaka Elab shanatorio en gmail.com
Mie Dic 10 19:22:33 CET 2008


He obtenido la respuesta por otros medios, y os la voy a dejar por aquí:

#include <iostream>

class A{

};

**************************
Aquí he añadido la inicialización de *a a NULL.
class B{
     private:
         A *a;
     public:
         B(A *a);
};

B::B(A *a):a(NULL){
     this->a = a;
}

*************************
Aquí he añadido la inicialización tanto de *a como b también
a NULL. La cuestión es que en el código original b no tenía
un constructor por defecto, por lo que el compilador intentaba
usarlo al inicializar el valor de sus atributos y daba error.
Por lo que hay que usar explícitamente el constructor que yo
he implementado.

class C{
     A *a;
     B b;
     C();
};

C::C():a(NULL),b(NULL){
     this->a = new A;

     B(this->a);
}

Gracias Programante por tu respuesta, aunque me gustaría usar
otra solución para el mismo problema, lo que no se si es posible.

Iré comentando mis dudas a medida que tenga más claro lo que hago.

Muchas gracias.

Zaka.




Más información sobre la lista de distribución Cconclase