Dev - C++ - c++ básico, error referencia a función sin definir

 
Vista:

c++ básico, error referencia a función sin definir

Publicado por Mrex (1 intervención) el 29/02/2020 23:54:45
Bueno pues en una práctica tengo este .cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
using namespace std;
 
GeneradorAleatorioEnteros generador_aleat (0, 500);
 
int main ()
{
	const int TOPE = 100;
	int vector[TOPE];
	int num_casillas;
	int izda;
	int dcha;
	int *p = vector;
	bool error;
 
	do{
 
		cout << "¿Cuantas casillas quiere rellenar? (max 100)" << endl;
		cin >> num_casillas;
 
		if(num_casillas > 100 || num_casillas <= 0)
		{
			cout << "Error, introduzca un número entre 1 y 100";
			error = true;
		}
		else
			error = false;
	}
	while(error == true);
 
	do{
		bool error = false;
		cout << "¿En que posicion quiere empezar? (izda)" << endl;
		cin >> izda;
		cout << "¿En que posicion quiere terminar? (dcha)" << endl;
		cin >> dcha;
 
		if(izda > 100 || izda < 0 || dcha > 100 || dcha <0)
		{
			cout << "Error, deben ser numeros entre 0 y 100";
			error = true;
		}
		else
		{
			if(izda > dcha)
			{
				cout << "Error, izda debe ser menor que dcha";
				error = true;
			}
			else
				error = false;
		}
	}
	while(error == true);
 
	for(int i = 0; i <= num_casillas; i++)
	{
		vector[i] = generador_aleat.Siguiente();
	}
 
	p = PosMayor(vector, izda, dcha);
 
	cout << "El mayor se encuentra en la posicion " << p;
 
	return 0;
 
}
y al compilarlo con g++ usando un makefile, me da el error:
./obj/I_Posmayor_Basico.o: En la función `main':
I_Posmayor_Basico.cpp:(.text+0x217): referencia a `PosMayor(int*, int, int)' sin definir


Los códigos de la función son
1
2
3
4
5
6
7
8
#ifndef Posmayor_Basico
#define Posmayor_Basico
 
using namespace std;
 
int * PosMayor(int *pv, int izda, int dcha);
 
#endif
y
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <Posmayor_Basico.h>
 
using namespace std;
 
/////////////////////////////////////////////////////////////////////////////
 
int * PosMayor(int *pv, int izda, int dcha)
{
	int *posmayor = pv + izda;
 
	for(int i=izda; i<=dcha; i= i++)
	{
		int *pos_actual = pv+i;
 
		if(*pos_actual > *posmayor)
		{
			*posmayor = *pos_actual;
		}
	}
 
	return posmayor;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder