Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: flaurens en 24 Mayo 2015, 19:00 pm



Título: Duda Urgente sobre error de definiciones de constantes en C++!!
Publicado por: flaurens en 24 Mayo 2015, 19:00 pm
Buenas les paso los pastebin del programa que estoy montando para estudiar las bases de programación en c++:

http://pastebin.com/BvntkjVN
http://pastebin.com/CVAHpQyK
http://pastebin.com/9V9kncjZ

Cuando compilo me sale el siguiente error:
(http://i60.tinypic.com/23m51m1.png)
Estoy trabajando con VisualStudio2013.
Mi otra duda es: comos abe el programa que función es la principal?
Con definir void main ya vale?
Es que quizás tenga errores por eso?
Si alguién me peude ayudar en cuanto sea se lo agradecería mucho mucho!


Título: Re: Duda Urgente sobre error de definiciones de constantes en C++!!
Publicado por: kub0x en 24 Mayo 2015, 19:39 pm
Has definido la constante MAX en dos .cpp distintos. Si incluyes un .cpp/.h con una definición repetida puede entrar en conflicto. Con definirla en un .cpp te basta.

En el procedimiento 'main' deberías de devolver 0.

Saludos.


Título: Re: Duda Urgente sobre error de definiciones de constantes en C++!!
Publicado por: flaurens en 24 Mayo 2015, 19:52 pm
Pero entonces en el menu.cpp como declaro el array?
Por que pro mucho que haga el include de los otros archivos, no me pilla la definición de MAX...


Título: Re: Duda Urgente sobre error de definiciones de constantes en C++!!
Publicado por: Peregring-lk en 24 Mayo 2015, 23:01 pm
Todo programa debe tener una única función llamada `main`, aunque tengas varios `cpp`. Cuando tu ejecutas una aplicación, el sistema le "da paso" llamado a su función `main`. Es el convenio seguido para que el SO pueda "darle el control" a tu aplicación.

Cuando uno tiene varios `.cpp`,  y los compilas, el compilador genera un fichero binario (llamado código objeto, con extensión `.o`), por cada `cpp`, y luego un programa llamado enlazador une todos los `.o` en un único fichero binario ejecutable.

Es ese fichero final el que importa; y ese único fichero final es tu programa, y ahí reside `main`. Como verás, no hay ninguna magia en "saber donde está el `main`".

Si tuvieras un `.cpp` sin `main`, e intentases crear un ejecutable, el enlazador te chillaría diciendo que no encuentra `main`. Si hubiese varias funciones (o varias globales, como en tu caso) llamadas igual, también chillaría. Y supongo que si tuvieses dos `main`, chillaría el doble.


Título: Re: Duda Urgente sobre error de definiciones de constantes en C++!!
Publicado por: kub0x en 24 Mayo 2015, 23:14 pm
Simplemente borra la declaración de MAX en menu.cpp (línea 12). Fíjate que MAX ya existe dado que estás importando el .cpp "RellenarVector" el cual ya tiene deifnido MAX.

Saludos.