一个加法的类模板源代码

来源:互联网 发布:java虚拟机原理pdf 编辑:程序博客网 时间:2024/05/22 12:39

在用类模板时经常出一些问题,主要是丢三落四写不全,我写了一个C++的,并注明容易出错的地方,共初学注意。

由庭博网校原创,转载请注明。

联系QQ:14280784 或86974558

#include "iostream"
using namespace std;
template<typename T>//类模板就是在类前先写这个,目的就是声明一个抽象的T类型,以后在类中只能用T去定义对象
class myt
{
public:
 myt();
 myt(T x,T y);//你看吧,用T定义了x,y两个对象
 ~myt();
 T GetA();//GetA()的返回值只能是T
 T GetB();
 T add();
protected:
private:
 T a,b;
};

template<typename T>//这里容易出错,喜欢不写。每定义一个函数都要这一句
myt<T>::myt()//这里容易出错,myt<T>的<T>容易少些,每定义一个函数都要有它
{
 a=30;
 b=50;
}


template<typename T>
myt<T>::myt(T x,T y)
{
 a=x;b=y;
}


template<typename T>
myt<T>::~myt()//这里的~是析构函数名字的一部分
{
 cout<<"析构了!";
}

 

template<typename T>
T myt<T>::GetA()// 这个地方也容易出错, 上一句定义了T后,还要用T做返回值类型
{
 return a;
}


template<typename T>
T myt<T>::GetB()
{
 return b;
}
template<typename T>
T myt<T>::add()
{
 return a+b;
}
int main()
{
 myt<float> t(3.8,4.2);
 cout<<t.GetA()<<endl;
 cout<<t.GetB()<<endl;
 myt<float> t1(4.55,5.55);
 cout<<t1.add();
 getchar();
 return 0;
}

原创粉丝点击