📄 19-2.txt
字号:
/* 范例:19-2 */
#include <iostream.h>
template<class T> /* 在类Temp_Class的定义前,加上template<class T> */
class Temp_Class
{
private:
T pp;
public:
Temp_Class(T a){pp=a;}
/* 返回值与参数行,因为有同时做赋值的动作,所以没有将其写成Temp_Class<T> &obj */
Temp_Class& operator+(Temp_Class &obj)
{
pp=pp+obj.pp;
return *this;
}
T get_result();
};
/* 成员函数定义在类外,要在类名称之后加上<T> */
template<class T>
T Temp_Class<T>::get_result()
{
return pp;
}
void main()
{
const string str1="Steven";
const string str11="Chang";
Temp_Class<double> obj1(3.25); /* 以类Temp_Class建立对象,
将double类型代入T */
Temp_Class<string> obj2(str1); /* 以类Temp_Class建立对象,
将string类型代入T */
Temp_Class<double> obj11(3.321);
Temp_Class<string> obj22(str11);
obj1=obj1+obj11;
obj2=obj2+obj22;
cout << "对象内数值相加:" << obj1.get_result() << "\n";
cout << "对象内字符串相加:" << obj2.get_result() << "\n";
getchar();
}
程序执行结果﹕
对象内数值相加:6.571
对象内字符串相加:StevenChang
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -