Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/03/2016, 08:25
alanjo
 
Fecha de Ingreso: marzo-2016
Mensajes: 15
Antigüedad: 8 años, 1 mes
Puntos: 0
Respuesta: Problema con CodeBlocks C++

Cita:
Iniciado por eferion Ver Mensaje
Buenas (Si hablas por un medio en el que el tiempo es algo relativo es mejor dar un saludo atemporal).

Cuando dices que la cabecera es obvia cometes un par de errores:
  • Asumes que la cabecera es obvia
  • Das por hecho que es sencilla y que está bien hecha.
En C++ no hay cosas obvias y eso es algo que irás aprendiendo.

Un problema con tu cabecera es que no tiene guardas.

¿En qué afecta eso a tu problema? Si miramos el error:


Es decir, el programa está encontrando múltiples definiciones de la función... las guardas sirven precisamente para corregir ese problema.

El programa te da ese error porque al no tener guarda la cabecera ésta puede ser cargada varias veces desde distintas fuentes y eso puede confundir al compilador.

La guarda más conocida (por ser más estándar) es esta, aunque imagino que te sonará:

Código C++:
Ver original
  1. #ifdef ALGO
  2. #define ALGO
  3.  
  4. // Contenido de la cabecera
  5.  
  6. #endif

Luego hay otra guarda que es

Código C++:
Ver original
  1. #pragma once
  2.  
  3. // Contenido de la cabecera

Pero en este caso, al no ser parte del estándar, puedes encontrarte con algun compilador que no la soporte.

Un saludo.
Muchísimas gracias por los consejos eferion, tanto por el gramático como por los de C++, la verdad es que soy relativamente nuevo en el tema. Respecto al problema; Cuando lo hago en linux, con el IDE Geany, no establezco las guardas y aún así el resultado es el mismo, ¿Problema? El profesor exige que sea en CodeBlocks o en su defecto VS 2015.
Al poner las guardas, de la siguiente manera:
Cita:
#ifndef FUNCPROMEDIO_H_INCLUDED
#define FUNCPROMEDIO_H_INCLUDED

int funcpromedio(int nota1, int nota2, int nota3, float promedio, float division);

#endif // FUNCPROMEDIO_H_INCLUDED
Me sigue dando el mismo error a la hora de compilar, la verdad que es un programa sencillo, pero a la hora de compilar, es un problema, y no logró entender cuál. Gracias por tu respuesta. Tenga usted una buena jornada.