Foros-FIUBA Foros HostingPortal
 FAQ  •  Buscar  •  Wiki  •  Apuntes  •  Planet  •  Mapa  •  Eyeon  •  Chat
Preferencias  •  Grupos de Usuarios
Registrarse  •  Perfil  •  Entrá para ver tus mensajes privados  •  Login
Ver tema siguiente
Ver tema anterior

Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente
Autor Mensaje
Elio Pez
Nivel 7


Edad: 38
Registrado: 02 Oct 2007
Mensajes: 443
Ubicación: Hiperespacio
Carrera: Informática y Sistemas
russia.gif
MensajePublicado: Mie Nov 28, 2007 11:59 am  Asunto:  Problemas con Clases en C++ Responder citandoFin de la PáginaVolver arriba

Gente tengo un problema q me esta comiendo la cabeza. La cuestion es asi:
Tengo 4 clases, class A, class B, class C y class D

La clase B hereda de la A y la C y la D heredan de la B. Hasta aca funcionaria en principio todo bien.

El problema es en el main, yo hago esto:

#include <iostream>
#include "A.h"
#include "B.h"
#include "C.h"
#include "D.h"

cuando instancio A y B funciona todo bien, no tira ningun error. Pero si instancio C o D no me los reconoce como clases y me tira un error diciendome q la funcion C (o D, dependiendo el caso) no esta declarada :S.

La verdad q no le encuentro la vuelta, si alguno me puede dar una mano, agradecido.

_________________
We are a way for the Cosmos to know itself
¿Sos nuevo en la FIUBA? entonces mira el institucional que hizo Knoxville
Image

Aquario Género:Masculino Tigre OfflineGalería Personal de Elio PezVer perfil de usuarioEnviar mensaje privadoVisitar sitio web del usuarioMSN Messenger
Stoma
Nivel 8


Edad: 36
Registrado: 06 Jul 2006
Mensajes: 510

Carrera: Informática
argentina.gif
MensajePublicado: Mie Nov 28, 2007 12:21 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

No se que problema tenes...
hice esto y funcionó sin problemas:

/****************/
Archivo A.h

#ifndef __A_H__
#define __A_H__

#include <iostream>

class A{
public:
int valA;

A();
};

#endif

/************************/

Archivo B.h

#ifndef __B_H__
#define __B_H__
#include "A.h"
#include <iostream>

class B:public A{
public:
B();
};

#endif

/****************/
Archivo C.h

#ifndef __C_H__
#define __C_H__
#include "B.h"
#include <iostream>

class C:public B{
public:
C();
};

#endif

/*****************/
Archivo D.h

#ifndef __D_H__
#define __D_H__
#include "B.h"
#include <iostream>

class D:public B{
public:
D();
};

#endif

/***************/
Los cpp son todos iguales (cambiando la letra correspondiente), te muestro uno a modo de ejemplo:
Archivo A.cpp
#include "A.h"

A::A(){
std::cout<<"instancia de A"<<std::endl;
}


/*************/
main.cpp

#include "A.h"
#include "B.h"
#include "C.h"
#include "D.h"

int main(){
A* objA= new A();
B* objB= new B();
C* objC= new C();
D* objD= new D();
}

compilo sin problema, y al ejecutar tuve la salida por pantalla correspondiente:

instancia de A
instancia de A
instancia de B
instancia de A
instancia de B
instancia de C
instancia de A
instancia de B
instancia de D
Presione una tecla para continuar... Mr. Green

Danos un poco más de detalles para ver tu problema en particular

_________________
Image
Si yo te digo carnaval...

Geminis Género:Masculino Gato OfflineGalería Personal de StomaVer perfil de usuarioEnviar mensaje privado
Elio Pez
Nivel 7


Edad: 38
Registrado: 02 Oct 2007
Mensajes: 443
Ubicación: Hiperespacio
Carrera: Informática y Sistemas
russia.gif
MensajePublicado: Mie Nov 28, 2007 12:43 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Ya lo encontre el problema, es una terrible boludes. Me da la re Avergonzado

La cuestion es q adentro de la clase A tenia declarado un enumerado y ese enumerado sin pensarlo habia puesto:
enum{
C,
D,
};

Entonces no me reconocia las clases C y D porq chocaban las 2 declaraciones.

Eclipse choto q no me decia q estaban duplicadas las declaraciones A punto de quebrar en llanto me comi la cabeza toda la mañana....................ARGHHHHH

_________________
We are a way for the Cosmos to know itself
¿Sos nuevo en la FIUBA? entonces mira el institucional que hizo Knoxville
Image

Aquario Género:Masculino Tigre OfflineGalería Personal de Elio PezVer perfil de usuarioEnviar mensaje privadoVisitar sitio web del usuarioMSN Messenger
Stoma
Nivel 8


Edad: 36
Registrado: 06 Jul 2006
Mensajes: 510

Carrera: Informática
argentina.gif
MensajePublicado: Mie Nov 28, 2007 1:40 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Elio Pez escribió:

Eclipse choto q no me decia q estaban duplicadas las declaraciones A punto de quebrar en llanto me comi la cabeza toda la mañana....................ARGHHHHH


y el Señor Byte dijole a Moises:
'No injuriaras a Eclipse'

_________________
Image
Si yo te digo carnaval...

Geminis Género:Masculino Gato OfflineGalería Personal de StomaVer perfil de usuarioEnviar mensaje privado
Dr Emett Brown
Nivel 5


Edad: 39
Registrado: 17 Dic 2006
Mensajes: 178
Ubicación: viajando con el DeLorean DMC-12
Carrera: Informática
CARRERA.informatica.png
MensajePublicado: Mie Nov 28, 2007 10:15 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Elio Pez escribió:
Eclipse choto q no me decia q estaban duplicadas las declaraciones A punto de quebrar en llanto me comi la cabeza toda la mañana....................ARGHHHHH

Más respeto a Eclipse!!!!!!!!!

Con todo respeto, si vas a pretender que un compilador te resuelva la vida y te diga "Acá esta el error flaco", vas mal.
En realidad, Eclipse fue diseñado para Java, y por lo tanto el CDT es un plugin en constante desarrollo.

Más allá de todo, la solución que da Stoma al incluir como primeras lineas de un header a:

Código:
#ifndef __MI_HEADER__
#define __MI_HEADER__

/* tu codigo */
#endif

es una de las mejores prevenciones ante futuros dolores de cabeza.

Otra gran prevención posible es declarar la clase antes de ser usada:

Código:
//declaracion
class A;

class B : public A;

class A
{
//definicion
};


Saludos.

_________________
¿Por qué tengo que ver la vida que nunca voy a a tener? - Seba De Caro dixit
¿Sabés cuántos exceptions te hacen falta? - Yoda dixit

Libra Género:Masculino Rata OfflineGalería Personal de Dr Emett BrownVer perfil de usuarioEnviar mensaje privado
Rada
Moderador


Edad: 37
Registrado: 10 Abr 2006
Mensajes: 2728
Ubicación: Caballito
Carrera: Informática
blank.gif
MensajePublicado: Mie Nov 28, 2007 11:03 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

alguien usa o uso alguna vez el #pragma once ?

_________________
[CAMPAÑA] Colaboremos entre todos por un foro más ordenado (click aquí)
[CAMPAÑA] Hacer un tópico por cada curso y con información ¡útil! (click aquí)


Gabba gabba we accept you we accept you one of us

Tauro Género:Masculino Tigre OcultoGalería Personal de RadaVer perfil de usuarioEnviar mensaje privadoEnviar emailYahoo MessengerMSN Messenger
Dr Emett Brown
Nivel 5


Edad: 39
Registrado: 17 Dic 2006
Mensajes: 178
Ubicación: viajando con el DeLorean DMC-12
Carrera: Informática
CARRERA.informatica.png
MensajePublicado: Mie Nov 28, 2007 11:25 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Rada escribió:
alguien usa o uso alguna vez el #pragma once ?

Tenés razón: es otra opción más que viable.
Si bien nunca lo usé, el artículo de la wikipedia me lo está obligando a usar (en el futuro :P).

_________________
¿Por qué tengo que ver la vida que nunca voy a a tener? - Seba De Caro dixit
¿Sabés cuántos exceptions te hacen falta? - Yoda dixit

Libra Género:Masculino Rata OfflineGalería Personal de Dr Emett BrownVer perfil de usuarioEnviar mensaje privado
Rada
Moderador


Edad: 37
Registrado: 10 Abr 2006
Mensajes: 2728
Ubicación: Caballito
Carrera: Informática
blank.gif
MensajePublicado: Mie Nov 28, 2007 11:57 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

A mi me lo obligo a usar el VS nunca lo use fuera de ese entorno y el compilador(y precompilador) de MS con lo cual no se que tan bien anda fuera de el sistema.
Si lo probas.. hacemelo saber

_________________
[CAMPAÑA] Colaboremos entre todos por un foro más ordenado (click aquí)
[CAMPAÑA] Hacer un tópico por cada curso y con información ¡útil! (click aquí)


Gabba gabba we accept you we accept you one of us

Tauro Género:Masculino Tigre OcultoGalería Personal de RadaVer perfil de usuarioEnviar mensaje privadoEnviar emailYahoo MessengerMSN Messenger
Elio Pez
Nivel 7


Edad: 38
Registrado: 02 Oct 2007
Mensajes: 443
Ubicación: Hiperespacio
Carrera: Informática y Sistemas
russia.gif
MensajePublicado: Jue Nov 29, 2007 8:47 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Para tratar de redimirme con el tema del eclipse voy a decir q lo uso un monton y q me gusta. La expresion "Eclipse choto" fue una reaccion en caliente porq me costo un huevo darme cuenta a MI donde habia cometido el error :P, en ese momento me hubiese venido bien una ayudita. Y la realidad es q al final no recuerdo bien como fue pero el eclipse me tiro donde podia estar el error.

Sobre esto:
Dr Emett Brown escribió:

Código:
#ifndef __MI_HEADER__
#define __MI_HEADER__

/* tu codigo */
#endif


el eclipse cuando creas un archivo .h nuevo te lo genera solo Very Happy

lo del #pragma once no lo habia visto nunca, pero parece interesante.

_________________
We are a way for the Cosmos to know itself
¿Sos nuevo en la FIUBA? entonces mira el institucional que hizo Knoxville
Image

Aquario Género:Masculino Tigre OfflineGalería Personal de Elio PezVer perfil de usuarioEnviar mensaje privadoVisitar sitio web del usuarioMSN Messenger
Mostrar mensajes de anteriores:      
Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente

Ver tema siguiente
Ver tema anterior
Podés publicar nuevos temas en este foro
No podés responder a temas en este foro
No podés editar tus mensajes en este foro
No podés borrar tus mensajes en este foro
No podés votar en encuestas en este foro
No Podéspostear archivos en este foro
No Podés bajar archivos de este foro


Todas las horas son ART, ARST (GMT - 3, GMT - 2 Horas)
Protected by CBACK CrackerTracker
365 Attacks blocked.

Powered by phpBB2 Plus, phpBB Styles and Kostenloses Forum based on phpBB © 2001/6 phpBB Group :: FI Theme :: Mods y Créditos

Foros-FIUBA está hosteado en Neolo.com Cloud Hosting

[ Tiempo: 0.4365s ][ Pedidos: 20 (0.3463s) ]