Hi,
Im trying to lern c++ on my own and y have a problem while trying to do a static library:
main.cpp
Code:
#include <iostream>
#include "../Library/lib.h"
using namespace std;
int main()
{
int *arr[5];
*arr[0]=40;
*arr[1]=2;
*arr[2]=77;
*arr[3]=16;
*arr[4]=12071;
QuickSort(arr, 0, 4);
for (int i=0; i<5; i++)
{
cout << *arr[i];
}
}
lib.h
Code:
#ifndef LIB_INCLUDED
#define LIB_INCLUDED
static void QuickSort(int *datos[], int min, int max);
static int Encontrar_Pivote(int *datos[], int min, int max);
static void Rotar(int *datos[], int primero, int segundo);
#endif // LIB_INCLUDED
lib.cpp
Code:
#include "lib.h"
static void QuickSort(int *datos[], int min, int max)
{
int pivote;
if ((max-min) > 0)
{
pivote = Encontrar_Pivote(datos, min, max);
QuickSort(datos, min, pivote-1);
QuickSort(datos, pivote+1, max);
}
}
static int Encontrar_Pivote(int *datos[], int min, int max)
{
int pivote = *datos[min++];
while (min<max)
{
if (*datos[min]<=pivote && *datos[max]>=pivote)
{
min++;
max--;
}
else if (*datos[min]>=pivote && *datos[max]<=pivote)
{
Rotar(datos, min, max);
min++;
max--;
}
else if (*datos[min]<=pivote && *datos[max]<=pivote)
{
min++;
}
else if (*datos[min]>=pivote && *datos[max]>=pivote)
{
max--;
}
}
if (min>max)
Rotar(datos, max, pivote);
else if (min<pivote)
Rotar(datos, min, pivote);
else if (min>pivote)
Rotar(datos, min-1, pivote);
return 0;
}
static void Rotar(int *datos[], int primero, int segundo)
{
int aux = *datos[primero];
*datos[primero] = *datos[segundo];
*datos[segundo] = aux;
}
When i try to build the main file i get this error:
C++/Pruebas/main.cpp|15|undefined reference to `QuickSort(int**, int, int)'
Bookmarks