[C con Clase] Problemas con los header e includes

Salvador Pozo salvador en conclase.net
Mar Dic 20 18:31:33 CET 2011


El pasado 2011-12-20 16:58:02, jagse escribió:
 
j> Hola a todos:

j> Tengo un problema de concepto que no me salgo.
j> Tiene que ver con los headers y con los includes.
j> ...

Hola:

Las declaraciones adelantadas de las clases A y B en la cabeceras B.h y A.h, respectivamente, son correctas. Esto es porque es la única forma de resolver este tipo de declaraciones recursivas.

Pero lo mismo no se aplica a la clase C, ya que aunque C incluye punteros a objetos de las clases A y B, estas a su vez no incluyen objetos de la clase C.

De modo que en C.h no necesitas hacer declaraciones adelantadas, bastará con incluir los ficheros de cabecera necesarios.

Sustituye las declaraciones adelantadas en C.h por includes:

----8<------
#ifndef C_H_
#define C_H_

#include "A.h"
#include "B.h"

#include <string>
#include <vector>
#include <iostream>

using namespace std;

class C{
private:
...
----8<------

En main puedes incluir los tres ficheros de cabecera, aunque bastaría con incluir C.h. Las macros se encargan de que no se produzcan declaraciones repetidas.

Hasta pronto.

-- 
Salvador Pozo (Administrador)
mailto:salvador en conclase.net


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