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:
Cita: multiple definition of `funcpromedio(int, int, int, int)'
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#ifdef ALGO
#define ALGO
// Contenido de la cabecera
#endif
Luego hay otra guarda que es
Código C++:
Ver original#pragma once
// 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.