Duda Urgente sobre error de definiciones de constantes en C++!!

Iniciado por flaurens, 24 Mayo 2015, 19:00 PM

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

flaurens

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:

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!

kub0x

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.
Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate


flaurens

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...

Peregring-lk

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.

kub0x

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.
Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate