[C++]¿Comunicacion entre clases?

Iniciado por skorpion32, 25 Julio 2011, 22:38 PM

0 Miembros y 1 Visitante están viendo este tema.

Foxy Rider

#10
Citarla verdad que me parece una forma horrenda y engorrosa eso de poner la cabecera en un archivo y desarrollarlas en otro

Eso es por que todavía no separaste mentalmente Interface de Implementación ... ^^

Lo que me parece un asco es lo que hizo Queta, de meter todo en un .h (cada clase tiene su propia interface, y vá para su respectivo .h/.hpp/.comoquieras) y en el cpp declarar la variable en el namespace global es también una pésima práctica (quiebra la encapsulación ... si lo usa clase2, ponelo dentro de la clase ...  si necesitás acceder a algo de forma global e instanciarlo una vez, quizáaaa ... QUIZÁ el patrón singleton pueda ser de ayuda ;) )

Citar
Yo hago un .h para cada clase, y debajo de la clase desarrollo sus métodos
Y si los métodos son extremadamente cortos, los desarrollo ahí mismo.

Hacelo en un proyecto grande y mirá cómo colisiona el compilador cuando encuentre símbolos re-definidos ...

Saludos.

P.S: Pablo, no mezcles lenguajes .... es mala práctica

P.S2: Para los ejemplos el "using namespace std" está bien, pero en la práctica, hay que ver si es mejor usarlo en un ámbito más local.... depende, depende ... además en el .h no incluiste el iostream antes .. y si un .cpp llama a ese .h sin incluir antes iostream, estás en problemas.

PiroskY

Perdon por el Off,  pero es una duda que me interesa sacarme:

Cita de: vertex@Symphony en 31 Julio 2011, 17:19 PM
P.S: Pablo, no mezcles lenguajes .... es mala práctica
Realmente no se a que te referis, alguien me dice?

PD:
Cita de: vertex@Symphony en 31 Julio 2011, 17:19 PM
P.S2: Para los ejemplos el "using namespace std" está bien, pero en la práctica, hay que ver si es mejor usarlo en un ámbito más local....
exactamente, era un ejemplito boludo nomas, no me iba a poner a hacer algo elaborado, cuando la duda (creo yo) era otra

Cita de: vertex@Symphony en 31 Julio 2011, 17:19 PM
en el .h no incluiste el iostream antes .. y si un .cpp llama a ese .h sin incluir antes iostream, estás en problemas.
hay un único cpp en este proyecto, y ese incluye la iostream :P

Foxy Rider

CitarRealmente no se a que te referis, alguien me dice?

El lenguaje que estás usando es en inglés, vos estás usando variables, clases y métodos con mezclas en español.

Citarhay un único cpp en este proyecto, y ese incluye la iostream

Sí, por eso lo señalé, en este caso está bien, es mala práctica, pero está bien (compila)
Pero en otro entorno, como estás usando iostream dentro del .h (debería ser en el .cpp), ese .h depende de iostream y deberías incluírlo ahí ... y si main.cpp no incluye iostream ? no se declaran los símbolos que Class.h necesita. ( std::cin )
No sé si me explico.

Y ahora noté, además ... que string.h (cstring) no lo andás usando (la versión de las libs de c++ es "string") -> http://www.cplusplus.com/reference/clibrary/cstring/

Saludos.

P.S: perdón si soy muy estricto

PiroskY

ajajajaj lenguaje en cuanto a idioma

creí que usaba algo de C sin darme cuenta

y si, te entiendo lo del iostream, pero por algo taaaan simple.. :P

mira vos, no sabia eso de la diferencia entre string.h y string, eso voy a tenerlo en cuenta
Y si, lo unclui porque al principio nombre se iba a ingresar con cin.getline, pero me arrepentí a ultimo momento :P

gracias por las correcciones :)

/off

[L]ord [R]NA

Busca sobre Semaphores, Signals, Mutex e incluso Shared Files, Shared Memory o Pipes.