c++定义一个类模板,实现两个任何类型的数相加
时间: 2024-09-29 19:07:25 浏览: 36
c++模板实现多项式相加
在C++中,你可以使用类模板(Class Template)来创建一个通用的类,可以处理任意类型的数值进行加法操作。下面是一个简单的例子,定义了一个名为`Adder`的模板类,它有两个成员函数,一个是用于声明的模板函数`add`,另一个是辅助的构造函数:
```cpp
template <typename T>
class Adder {
public:
// 构造函数,用于接收两个待相加的值
Adder(T a, T b) : first(a), second(b) {}
// 模板函数 add,接受任意类型T并返回同类型的结果
template <typename U = T> T add() {
return static_cast<U>(first) + static_cast<U>(second);
}
private:
T first; // 第一个数值
T second; // 第二个数值
};
// 使用示例
int main() {
Adder<int> int_adder(5, 3); // 创建一个整数类型的Adder实例
std::cout << "Int addition: " << int_adder.add() << std::endl;
Adder<double> double_adder(3.14, 2.71); // 创建一个双精度浮点数类型的Adder实例
std::cout << "Double addition: " << double_adder.add<double>() << std::endl;
// 如果直接调用double_adder.add()会隐式转换成double类型
std::cout << "Implicit conversion to double: " << double_adder.add() << std::endl;
return 0;
}
```
阅读全文