[c++学习] 模板类基础

来源:互联网 发布:整形医院网络咨询工资 编辑:程序博客网 时间:2024/06/05 18:11

模板类通常会在头文件中,写成以下这种形式:

#ifndef__C_TEST_H__#define__C_TEST_H__template<class T>class CThree{private:T_m1,_m2,_m3;public:CThree(T t1,T t2,T t3);TMin();TMax();};template <class T>CThree<T>::CThree(T t1,T t2,T t3){_m1 = t1;_m2 = t2;_m3 = t3;}template <class T>T CThree<T>::Max(){T maxab = _m1 >= _m2 ? _m1 : _m2;return maxab >= _m3 ? maxab : _m3;}template <class T>T CThree<T>::Min(){T minab = _m1 <= _m2 ? _m1 : _m2;return minab <= _m3 ? minab : _m3;}#endif//__C_TEST_H__

须注意以下几点:

1. 在 class 声明前,写 template<class T>.

template<class T>

class CTest

{};


2. 函数实现时,须写成 函数模板的形式,前面加上 template<class T>。

并且,函数前面的类名,不能简单地写成

template<class T>

T CTest::Max()

而要写成

template<class T>

T CTest<T>::Max()

注意不要忘记类名后面的 “<T>" !!


3. 模板类的实现和声明,都要写在头文件中!!而不能像普通的类,声明在头文件,实现在cpp 文件里,否则会出现链接错误!

说XXX 函数找不到!


个人感觉这个东西就是要多用,用多了自然就记住了。


原创粉丝点击