定义一个类模板实现两个数求和,分别设置无参构造函数和有参构造函数、求和成员函数,实现整型和实型数据的运算。
时间: 2024-03-21 07:38:08 浏览: 139
好的,下面是实现代码:
```c++
#include <iostream>
using namespace std;
template<typename T1, typename T2>
class Adder {
public:
Adder();
Adder(T1 t1, T2 t2);
T1 getNum1() const;
T2 getNum2() const;
void setNum1(T1 t1);
void setNum2(T2 t2);
double add() const;
private:
T1 num1;
T2 num2;
};
template<typename T1, typename T2>
Adder<T1, T2>::Adder() : num1(0), num2(0) {}
template<typename T1, typename T2>
Adder<T1, T2>::Adder(T1 t1, T2 t2) : num1(t1), num2(t2) {}
template<typename T1, typename T2>
T1 Adder<T1, T2>::getNum1() const {
return num1;
}
template<typename T1, typename T2>
T2 Adder<T1, T2>::getNum2() const {
return num2;
}
template<typename T1, typename T2>
void Adder<T1, T2>::setNum1(T1 t1) {
num1 = t1;
}
template<typename T1, typename T2>
void Adder<T1, T2>::setNum2(T2 t2) {
num2 = t2;
}
template<typename T1, typename T2>
double Adder<T1, T2>::add() const {
return static_cast<double>(num1 + num2);
}
int main() {
Adder<int, double> adder1; // 无参构造函数
Adder<int, double> adder2(3, 4.5); // 有参构造函数
cout << adder1.add() << endl; // 输出 0
cout << adder2.add() << endl; // 输出 7.5
adder1.setNum1(5);
adder1.setNum2(2.5);
cout << adder1.add() << endl; // 输出 7.5
return 0;
}
```
这个类模板实现了两个数的加法操作,可以对整型和实型数据进行加法运算。其中,构造函数包括无参构造函数和有参构造函数,成员函数包括获取和设置两个数的值以及求和函数。在主函数中,我们创建了两个 Adder 对象,分别使用无参构造函数和有参构造函数进行初始化,并测试了各个成员函数的功能。
阅读全文