Aqui estoy con un nuevo problema. Estoy creando un par de clases. Una de ellas maneja char * y la otra es un template que maneja array.
Dentro de la clase char * tengo una función que trocea la cadena, según el parámetro de entrada y devulve un array de subcadenas.
El problema viene al linkar con el programa proncipal ya que me dice que no encuentra la referencia a funciones de la clase array.
Os pongo el código de la función split:
Código C++:
Ver original
La cabecera de la clase array:
Código C++:
Ver original
#ifndef ARRAY_TEMPLATE
#define ARRAY_TEMPLATE
template <class T>
class array {
private:
int elementos;
T *_array;
public:
array();
array(int);
array(int, array<T>);
~array();
int in(T);
int newElemento(T);
int nElementos() {return this->elementos;}
T element(int);
T& operator[](int);
array<T>& operator=(T);
operator int() const {return (0!=elementos);}
};
#endif
Y el programa pincipal:
Código C++:
Ver original
#include <stdio.h>
#include "cadena.h"
int main()
{
cadena temp;
temp.str(123);
return 0;
}
Este es el mensaje de salida del compilador:
Código C++:
Ver original
iapellaniz@ia152421:~/Escritorio/aplicacion$ g++ -Wall -o main main.c array.cpp cadena.cpp
/tmp/ccCgVCZ7.o: En la función `cadena::split(char)':
cadena.cpp:(.text+0x9ca): referencia a `array<cadena>::array()' sin definir
cadena.cpp:(.text+0xa3a): referencia a `array<cadena>::newElemento(cadena)' sin definir
cadena.cpp:(.text+0xa9f): referencia a `array<cadena>::~array()' sin definir
No encuentro el problema porque, tanto en la cabecera de mi clase cadena, como el el .cpp tengo un include "array.h"
Gracias por las posibles respuestas.
Saludos.
 
 


