u:57 函数模板的说明(续) 程序中有同名的函数模板与普通函数时,函数调用的匹配 顺序为: 先检查普通函数,若参数数目、类型都能匹配,则调用 该普通函数 否则检查是否有函数模板,能将实参类型代入后产生模 板函数,若有则调用该模板函数 否则尝试将实参进行类型转换,转换后若能与某个普通 函数匹配,则调用该普通函数 否则报错 函数模板不允许进行类型转换 例:Max(10,a2)
21:17:57 函数模板的说明(续) ➢ 程序中有同名的函数模板与普通函数时,函数调用的匹配 顺序为: .先检查普通函数,若参数数目、类型都能匹配,则调用 该普通函数 .否则检查是否有函数模板,能将实参类型代入后产生模 板函数,若有则调用该模板函数 .否则尝试将实参进行类型转换,转换后若能与某个普通 函数匹配,则调用该普通函数 .否则报错 ➢ 函数模板不允许进行类型转换 例: Max(10,’a’);
u:57 §3类模板 定义语法:使用关键字 template template< typename类型形参列表 c1ass类名 类型形参列表中的类型在类 //类成员 中必须至少使用一次 template <typename T> LINKLISTO class LInKlist LINKLIST (LINKLIST & LINKLIST O struct NODE void Create T i void Insert (t 1) node next void Remove( t 1) )*head NODE *Find (t 1) public:
21:17:57 §3 类模板 ➢ 定义语法:使用关键字template template <typename 类型形参列表> class 类名 { //类成员 }; template <typename T> class LINKLIST { struct NODE{ T i; NODE * next; }*head; public: LINKLIST(); LINKLIST(LINKLIST &); ~LINKLIST(); void Create(); void Insert(T i); void Remove(T i); NODE *Find(T i); }; 类型形参列表中的类型在类 中必须至少使用一次