elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Mensajes
Páginas: 1 ... 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 [87] 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 ... 122
861  Programación / Programación C/C++ / Re: [DUDA] Teoria de asignacion... en: 4 Mayo 2010, 04:06 am
Esas variables se encuentran dentro de una función o son globales? si son globales ten en cuenta que en ese nivel no puedes modificar su contenido, solo inicializar.

Saludos
862  Programación / Programación C/C++ / Re: [DUDA] Teoria de asignacion... en: 4 Mayo 2010, 03:09 am
Debería compilar. Que error te da?
863  Programación / Programación C/C++ / Re: [DUDA]Responsabilidad de la clase o del programador. en: 4 Mayo 2010, 02:39 am
En el constructor por supuesto. Ten en cuenta que chequear los parámetros en un método no difiere de hacerlo en cualquier otra función por lo tanto no tiene sentido no hacerlo. Sobretodo si los datos provienen de funciones externas o del propio usuario.

En cualquiera de los casos tienes que analizar el caso en particular ya que verificar los datos siempre es escribir mas código y (en algunos casos) perder un poco de rendimiento. Mas allá de eso es una buena practica hacerlo y logra que el programador pueda buscar y controlar los errores mucho mas fácilmente . Fallar antes que ocurra un desastre mayor siempre es bienvenido.

Saludos!
864  Programación / Programación C/C++ / Re: Problema compilando en: 1 Mayo 2010, 07:55 am
Si vos decís  que están los 3 unidos :rolleyes:

Mañana me mostras.  :D

Saludos
865  Programación / Programación C/C++ / Re: Problema compilando en: 1 Mayo 2010, 07:29 am
Include al .h y agrega el cpp al proyecto. (Add to project, a la izquierda) y luego fíjate lo que te dije antes.

Aclaro por si no quedo muy claro, el tema del .h y .cpp son convenciones pero se deben tener en cuenta igual, ya que para algo están. No es recomendable ponerle cualquier extensión a los archivos.

Me retiro por hoy, mañana seguimos.

Saludos!
866  Programación / Programación C/C++ / Re: Problema compilando en: 1 Mayo 2010, 06:56 am
De que queres que se encargue el linker? que vos pensabas que por incluir persona.h, el IDE te iva a compilar y a linkear el cpp solo porque tienen el mismo nombre?  :D

Olvidate de .h y de .cpp. Esas son solo convenciones, la realidad es que ambos son solo códigos que necesitan ser compilados y linkeados. La única diferencia es que uno los vas a usar para las declaraciones y el otro para las definiciones, pero luego de eso las diferencias son nulas.

Si vos haces esto por ejemplo:

main
Código
  1. #include <iostream>
  2. #include "persona.h"
  3.  
  4. int main()
  5. {  
  6.  
  7. return EXIT_SUCCESS;
  8. }
  9.  

persona.h
Código
  1. #ifndef PERSONA_H
  2. #define PERSONA_H
  3. using namespace std;
  4. class Persona{
  5.    public:
  6.        Persona();
  7.        Persona(string name,string ape, int t, int ced);
  8.        virtual ~Persona();
  9.  
  10.        void g_nombre(string name);
  11.        void g_apellido(string ape);
  12.        void g_tlf(int t);
  13.        void g_ci(int ced);
  14.  
  15.        string dev_nombre()const;
  16.        string dev_apellido()const;
  17.        int dev_tlf()const;
  18.        int dev_ci()const;
  19.  
  20.    protected:
  21.        string nombre;
  22.        string apellido;
  23.        int tlf;
  24.        int ci;
  25. };
  26. #endif
  27.  


Eso no te debería dar ningún warning. Por que? porque los prototipos son suficientes para el compilado y el linkeado ya que en ningún momento necesitas ninguna definición. Ahora que pasa si intentamos instanciar una clase persona en main? obviamente nos da un error en el linker porque las definiciones no se encuentran. Y es ahí donde entra el persona.cpp (que se podría llamar nuevohh.cpp, que tenga el mismo nombre es solo para que te ordenes vos mismo)
Lo importante es que sepas que el IDE no va a buscar el archivo por vos.

Luego de saber eso, mira las preguntas que te he hecho antes y analizalo.

Y como consejo (no viene mucho al caso pero no esta de mas): La idea de dividir las definiciones y las declaraciones en distintos archivos es simplemente para tener el código mas ordenado. Alguien que quiera ver como funciona una clase no necesita ver como esta implementa sus métodos, y viceversa sucede exactamente lo mismo. Por lo tanto en clases complejas si se dividen los archivos, ahora si todos tus métodos tienen una sola linea, no tiene sentido definirlos en otros archivos, al menos que esa clase tienda a volverse mas compleja con el tiempo.

Saludos!
867  Foros Generales / Foro Libre / Re: Entrevista de tele5 a sdc en: 1 Mayo 2010, 06:19 am
El que habla al final.

"Literalmente se puede apagar las luces de una ciudad"

Gran fail esa ultima frase.  ;D ;D ;D ;D
868  Programación / Programación C/C++ / Re: Problema compilando en: 1 Mayo 2010, 06:16 am
No no puedo ahora. Mañana lo pruebo.

Igualmente ya me imagino por donde van los tiros y cuando lo veas te vas a dar cuenta que es un error bastante tonto. Por esta vez voy a dejar que te sigas rompiendo un poco la cabeza ya que, creo yo, va a ser mejor.

Para que te vayas guiando:

persona.cpp esta en el proyecto?

cuantas veces incluís persona.h?  :rolleyes:


Que sea leve. Mañana me contas tus deducciones y si todavía no lo sacaste te digo  ;D


Saludos!
869  Programación / Programación C/C++ / Re: Problema compilando en: 1 Mayo 2010, 02:47 am
Me parece que alguien no leyó lo que le pase  :rolleyes: ;D

A ver, cuando vos tenes múltiples archivos, se analizan por separado buscando errores de sintaxis, de tipos y demás (no voy a ahondar en tokens, traductores ni nada en especifico. Para mas del tema basta con buscar "translation phases").

Cuando todo esta bien por así decirlo, el linker se encarga de transformar todo en una unidad.

Ahora bien, main.cpp no tiene idea de las definiciones que existen en persona.cpp, y es ahí donde entra la funcionalidad del header al hacer de una especie de contenedor de forward declarations.

Ese persona.cpp lo tenes que incluir en el proyecto si es que creaste uno, porque si bien el compilador no se va a quejar porque puede usar los prototipos para el chequeo, fallaría el linker si utilizas alguno de los métodos al no encontrarse la definición.

En cuanto al código, así a simple vista hay definiciones que son distintas a los prototipos. Yo que vos lo reviso un poco mas.

Saludos!

870  Programación / Programación C/C++ / Re: Problema compilando en: 1 Mayo 2010, 01:33 am
No lo puedo probar ahora porque tengo el vs ocupado, mas tarde lo compilo y te digo.

Hiciste lo que te dije a ver si así se solucionaba?
Páginas: 1 ... 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 [87] 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 ... 122
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines