ayuda c++

bLaCkH0Le

Pues estoy haciendo una practica para la universidad y despuesde muchas lineas pues he probado a compilar y me da un error en un #include <Circulo.hpp> me pone el tipico error de "in file included" y no logro verlo.
os paso el archivo haber si me podeis ayudar

www.knstudios.net/practica1.rar

PD: debe de tener muchos mas errores pero me gustaria resolver el tema de los includes pa k me deje seguir trabajando. Thx

dr_Rouman

Creo que el problema es que "Circulo.hpp" no conoce la clase "Figura", entonces te da un fallo porque está esperando el nombre de una de las clases. Prueba incluyendo Figura.hpp

Un saludo!

Edit: lo estoy toqueteando y después de hacer eso vas a tener otro problema con los ficheros. En Figura.hpp vas a tener que incluir Posicion.hpp porque te dice que "Posicion" no es un tipo de dato (o algo así).

Luego ya hay chorrocientos errores de sintaxis, pero eso es harina de otro costal

bLaCkH0Le

muchas gracias, va mejorando. una pregunta si pongo la cabecera de la clase:

class Circulo : public Figura

tengo k pasarle aki algun parametor ya o poner los parametros del constructor?

y otra pregunta:
Si circulo hereda de Figura puedo acceder a los atributos privados de Figura desde Circulo???

dr_Rouman

Hmm, herencia estoy dando ahora, así que seguro que hay gente que te pueda responder mejor que yo en MV. De todas formas lo intentaré ^".

Lo del constructor no te entiendo; cuando tú dices:

class Circulo : public Figura

creo que lo que haces es otorgarle a Circulo lo público de Figura (creo que también puedes poner private Figura o protected, pero a lo mejor me lo estoy inventando).

Sobre lo segundo, creo que puedes pero sólo si en la clase de la que se hereda hay algún método (public) que permita acceder. Te pongo un ejemplo sencillo que tenía por ahí:

class base
{
private:
int i;
public:
base();
void set_i(int n);
int get_i();
};

class derived : public base
{
private:
int j;
public:
derived();
void set_j(int n);
int mul();
};

main()
{
derived ob;

ob.set_i(10);//Mete 'i' en la base
ob.set_j(4);//Mete 'j' en la derivada

cout << ob.mul();//Multiplica i por j

return 0;
}

No he puesto las implementaciones porque hubiera sido mucha tela xD, pero lo único que hace "set_i" (que es de base) es meter un entero en el miembro privado. De esta manera puedes acceder a los privados de la que se hereda.

Espero haberte aclarado algo XD

1Saludo!

bLaCkH0Le

Lo he vuelto a subir, quite los errores pero se me a quedado un error en el constructor de Figura que no se a que se debe. haber si me peudes echar una mano.

Alcanor

Dios archivos .hpp ¡puag!

Usuarios habituales

  • Alcanor
  • bLaCkH0Le
  • dr_Rouman