This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
simple error woth templates
- From: Andre Kirchner <supercroc1974 at yahoo dot com>
- To: gcc-help at gcc dot gnu dot org
- Date: Thu, 22 Apr 2004 07:27:25 -0700 (PDT)
- Subject: simple error woth templates
Hi,
I have made this program to learn templates, but gcc
keeps says that there's an undefined reference to
`Dog<int,long>::Dog[in-charge](int,int,long,log)` at
the line marked
bellow.
Could someone show me what's wrong?
Thanks in advance,
Andre
**** Dog.h *****
#ifndef IOSTREAM
#define IOSTREAM
#include <iostream.h>
#endif
template < class CLASS_A, class CLASS_B >
class Dog
{
public:
Dog( CLASS_A firstNumber, CLASS_A secondNumber,
CLASS_B thirdNumber, CLASS_B forthNumber );
~Dog(){};
void showBigger();
private:
CLASS_A number_A;
CLASS_B number_B;
};
*** Dog.cpp ***
#ifndef DOG
#define DOG
#include "Dog.h"
#endif
template < class CLASS_A, class CLASS_B >
Dog< CLASS_A, CLASS_B >::Dog( CLASS_A firstNumber,
CLASS_A secondNumber, CLASS_B thirdNumber, CLASS_B
forthNumber )
{
number_A = ( firstNumber>secondNumber
)?firstNumber:secondNumber;
number_B = ( thirdNumber>forthNumber
)?thirdNumber:forthNumber;
}
template < class CLASS_A, class CLASS_B >
void Dog< CLASS_A, CLASS_B >::showBigger()
{
cout << number_A << endl;
cout << number_B << endl;
}
*** main.cpp ***
#ifndef DOG
#define DOG
#include "Dog.h"
#endif
int main( int argc, char *argv[] )
{
Dog < int, long > theDog( 10, 20, 30l, 40l );
// theDog.showBigger;
return( 0 );
}
__________________________________
Do you Yahoo!?
Yahoo! Tax Center - File online by April 15th
http://taxes.yahoo.com/filing.html