首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

undefined reference to 有关问题

2012-05-27 
undefined reference to 问题一个简单的建树,打印树的程序。。上眼。。C/C++ code//Tree.h1 #includeiostream

undefined reference to 问题
一个简单的建树,打印树的程序。。上眼。。

C/C++ code
//Tree.h  1 #include<iostream>  2 using namespace std;  10 template < typename T> 11 struct node{ 12         //friend class Act; 13     T data;  14     node< T > *lch; 15     node< T > *rch; 16     node(); 17     //node( const T &x ); 18     ~node(); 19 }; 20  21 template < typename T > 22 class Act{ 23         public: 24             void Init( node< T >* tr ); 25             void Print( node< T >* tr ); 26 };//Tree.cpp  1 #include<iostream>  2 #include"Tree.h"  3 using namespace std;  4 template < typename T >  5 void Act< T >::Init( node< T >* tr )  6 {  7     tr = new node< char >;  8     cout << "输入data : " << flush;  9     cin >> tr -> data; 10     if ( tr -> data != "*" ) 11     { 12             Init( tr -> lch ); 13             Init( tr -> rch ); 14     }        15 }    16 template < typename T > 17 void Act< T >::Print(node< T >* tr ) 18 { 19         if( tr -> data != "*" ) 20         { 21                 cout << tr -> data << endl; 22                 Print(tr -> lch );  23                 Print(tr -> rch ); 24         }        25 }   //Main.cpp  1 #include<iostream>  2 #include"Tree.h"  3 using namespace std;  4 int main()  5 {  6     node< char >* root;  7     Act< char > act;  8     act.Init( root );  9     act.Print( root ); 10      11     return 0; 12 }

报错:
/tmp/ccP9q7K0.o: In function `main':
/home/jzh/ProgrammerExcerse/Main.cpp:8: undefined reference to `Act<char>::Init(node<char>*)'
/home/jzh/ProgrammerExcerse/Main.cpp:9: undefined reference to `Act<char>::Print(node<char>*)'
collect2: ld 返回 1

不明白阿。。。。。求解

[解决办法]
貌似除了EDG前端以外的编译器(包括常见的VC++、g++等)都不支持模版分离编译,C++11里export也被deprecated了,所以模版定义就不要放.cpp了,全放.h里解决。
[解决办法]
mark

热点排行