buenas a todos he estado practicando la programacion generica
entonces me surgio mesclarla con punteros entonces cuando compilo me aparece un error.
veamos :
compiler : gcc
Ide : code::block
s.o : windows xp ..
codigo:
header.hpp
#include <iostream>
#include <utility>
#include <vector>
using namespace std;
template<class T>
class Array{
private:
T *ptr_tipo;
T tipo;
public:
Array(T val, unsigned int siz);
};
def.cpp
#include "header.hpp"
template<class T>
Array<T>::Array(T val, unsigned int siz){
ptr_tipo = 0L;
ptr_tipo = new T;
}
main.cpp
#include <iostream>
#include "header.hpp"
using namespace std;
int main()
{
Array<int> arreglo(12, 45);
return 0;
}
entonces cuando compilo me da eso:
obj\Release\main.o:main.cpp|| undefined reference to `Array<int>::Array(int, unsigned int)'|
||=== Build finished: 1 errors, 0 warnings ===|
la verdad me pasa a menudo con cualquier app
les agradeceria ayuda.
GRACIAS.
Hola
Cuando se utilizan templates se implementan las funciones en el .h
header.hpp
#include <iostream>
#include <utility>
#include <vector>
using namespace std;
template<class T>
class Array{
private:
T *ptr_tipo;
T tipo;
public:
Array(T val, unsigned int siz);
};
template<class T>
Array<T>::Array(T val, unsigned int siz){
ptr_tipo = 0L;
ptr_tipo = new T;
}
main.cpp
#include <iostream>
#include "header.hpp"
using namespace std;
int main()
{
Array<int> arreglo(12, 45);
return 0;
}
Saludos
es cierto , luego de escribir me puse en eso y compilo si incluia el otro .cpp
me dio el mismo error pero con eso que me dijiste ya resolvi
gracias.. de veras que si.