简单关于模板类的问题
辉歌 2005-05-08 04:44:37 treenode.h
//====================
#pragma once
template<class T>
class TreeNode
{
private:
TreeNode<T>* left;
TreeNode<T>* right;
public:
T data;
TreeNode(T d,TreeNode<T>* l=NULL,TreeNode<T>* r=NULL);
TreeNode<T>* Left() const;
TreeNode<T>* Right() const;
};
//================
treenode.cpp
//======================
#include "StdAfx.h"
#include ".\treenode.h"
template<class T>
TreeNode<T>::TreeNode(T d,TreeNode<T>* l,TreeNode<T>* r)
: data(d)
, left(l)
, right(r)
{
if( left == NULL && right == NULL )
cout << "\nThis is a leaf.\n";
}
template<class T>
TreeNode<T>* TreeNode<T>::Left() const
{
return left;
}
template<class T>
TreeNode<T>* TreeNode<T>::Right() const
{
return right;
}
//main.cpp
#include "stdafx.h"
#include "Treenode.h"
typedef TreeNode<int> IntTreeNode;
int _tmain(int argc, _TCHAR* argv[])
{
IntTreeNode* left = new IntTreeNode(2);
delete left;
system("pause");
return 0;
}
//=======================
vc7.1
编译后提示:
Tree.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall TreeNode<int>::TreeNode<int>(int,class TreeNode<int> *,class TreeNode<int> *)" (??0?$TreeNode@H@@QAE@HPAV0@0@Z) ,该符号在函数 _main 中被引用
Debug/Tree.exe : fatal error LNK1120: 1 个无法解析的外部命令
不知道哪里出了问题。