[C con Clase] Crear una librería estática

dani ddagnino en gmail.com
Mar Dic 11 17:20:22 CET 2007


Crear una librería estática

Hola a todos,
Estoy intentando crear una librería estática y siguiendo la guía del curso no consigo crearla. Me he propuesto el caso más simple que se me ocurre que es una librería que sume dos complejos y saque la parte real e imaginaria.
El archivo .cpp que tengo es:

#include <math.h>
#include "C:\lib_dani\complejos.h"
//Definición de operador para complejos.
inline complejo operator +(complejo x, complejo y){
   complejo temp = {x.a+y.a, x.b+y.b};
   return temp;
   }
//Definición de funciones para complejos.
inline double real(complejo z) {return z.a;}
inline double imag(complejo z) {return z.b;}

Y el .h es:

//Estructura.
struct complejo {double a,b;};
//Prototipo del operador + para complejos.
inline complejo operator +(complejo x, complejo y);
//Funciones para complejos.
inline double real(complejo z);
inline double imag(complejo z);

Hasta aquí todo bien pq consigo compilar esto. El problema llega cuando intento usarla con el programa:

#include <cstdlib>
#include <iostream>
using namespace std;
#include "C:\lib_dani\complejos.h"

int main(int argc, char *argv[]){
complejo z1={1.0,2.0},z2={0.1,0.2};
printf("z1+z2 = (%lf , %lf)\n",real(z1+z2),imag(z1+z2));
getchar();
return 0;
}

El compilador me dice “undefined referente to operador +…” y lo mismo para real e imag. No entiendo pq no están definidos o pq no los encuentra. Si alguien tiene una idea de pq esto no funciona le agradecería cualquier comentario.

Un saludo,
Dani.

PS: Uso el Dev-C++ y he seguido todos los pasos de la guía de Cconclase.


Más información sobre la lista de distribución Cconclase