/************************************************************************************************<br /> * 名 稱:main.cpp<br /> * 功 能:函數模版與類模版<br /> * 描 述:無<br /> * 作 者:JarvisChu<br /> * 時 間:2011-6-30<br /> *************************************************************************************************/<br />#include <iostream><br />using namespace std;<br />#define _DEBUG_FUNCTION_TEMPLATE<br />#define _DEBUG_CLASS_TEMPLATE<br />#ifdef _DEBUG_FUNCTION_TEMPLATE<br />/*函數模版*/<br />template<class T><br />T Add(T a, T b){<br /> T c;<br /> c = a+b;<br /> cout<<"函數模版內計算結果:"<<c<<endl;<br /> return c;<br />}<br />#endif<br />#ifdef _DEBUG_CLASS_TEMPLATE<br />template<class T><br />class TempClass{<br /> public:<br /> TempClass(){}<br /> T Add(T a, T b){<br /> T c;<br /> c = a+b;<br /> cout<<"類模版內計算結果:"<<c<<endl;<br /> return c;<br /> }<br /> void show(T value);<br /> virtual ~TempClass(){};<br />};<br />template <class T><br />void TempClass<T>::show(T value){<br /> cout<<value<<endl;<br />}<br />#endif<br />int main()<br />{<br />#ifdef _DEBUG_FUNCTION_TEMPLATE<br /> cout<<"調用函數模版計算結果:"<<Add<int>(3,4)<<endl;<br />#endif<br />#ifdef _DEBUG_CLASS_TEMPLATE<br /> TempClass<double> templt;<br /> cout<<"調用類模版計算結果:"<<templt.Add(3.1,4.2)<<endl;<br /> templt.show(12.3);<br />#endif<br /> return 0;<br />}<br />