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.