|
Hello everybody
I am developing a simple program and it has the next errors::
unresolved external symbol "public: class cComplejo<int> __thiscall cComplejo<int>::operator+(class cComplejo<int>)" (??H?$cComplejo@H@@QAE?AV0@V0@@Z)
unresolved external symbol "class ostream & __cdecl operator<<(class ostream &,class cComplejo<int> &)" (??6@YAAAVostream@@AAV0@AAV?$cComplejo@H@@@Z)
error LNK2001: unresolved external symbol "public: __thiscall cComplejo<int>::cComplejo<int>(int,int)" (??0?$cComplejo@H@@QAE@HH@Z)
The source code is very simple and I don´t know why is the reason when appears linkers error:
*****************************clase_complejo.h***************************** #ifndef __CLASE_COMPLEJO_H__ #define __CLASE_COMPLEJO_H__ #include <iostream.h>
template <class Tipo> class cComplejo { private: Tipo real; Tipo imaginaria; public: cComplejo(Tipo, Tipo); cComplejo operator+(cComplejo); friend ostream& operator <<(ostream &salida,cComplejo &complejo); }; #endif ***********************clase_complejo.cpp********************************* #include <iostream.h> #include "clase_complejo.h"
template <class Tipo> cComplejo<Tipo>::cComplejo<Tipo>(Tipo real, Tipo imaginaria){ this->real = real; this->imaginaria = imaginaria; };
template <class Tipo> cComplejo<Tipo> cComplejo<Tipo>::operator+(cComplejo<Tipo> operando2){ this->real = this->real + operando2.real; this->imaginaria = this->imaginaria + operando2.imaginaria; };
template <class Tipo> ostream& operator <<(ostream& salida,cComplejo<Tipo> &complejo){ salida << "Real: " << complejo.real << endl; salida << "Imaginaria: " << complejo.imaginaria << endl; return salida; };
*********************************************************ppal.cpp*********************
#include <iostream.h> #include "clase_complejo.h"
void main(){ //Se le indica el tipo de dato que va a manipular la clase cComplejo <int> complejo1(1, -3); cComplejo <int> complejo2(2, 1); cComplejo <int> complejo3(0, 0);
cout << "Complejo 1: " << endl << complejo1; cout << "Complejo 2: " << endl << complejo2;
complejo3 = complejo1 + complejo2; cout << "Complejo 3: " << endl << complejo1; }
Thank you very much,
Daniel
|