2、编写-一个复数类模板Complex,其数据成员real 和image 的类型未知,定义相同的成员函数,实现构造、输出、加、减等功能。在主函数中定义模板类对象,分别以int和double实例化类型参数,实现复数中的相关操作。
问题描述:
作为一名资深的IT专家,我来解决这个C++实验报告问题。
我们需要创建一个复数类模板 Complex,其中数据成员 Real 和 Image 类型未知,但需要实现构造、输出、加、减等基本操作。在主函数中,我们将分别以 int 和 double 类型实例化这些成员函数,并实现复数中的相关操作。
解决方案:
template <typename Real,typename Image>
class Complex {
public:
Complex(Real a, Image b) {
// 构造函数
}
Real getReal() const {
// 成员函数,返回 Real 类型
}
Image getImage() const {
// 成员函数,返回 Image 类型
}
void add(Real a, Image b) {
// 成员函数,实现加操作
}
void subtract(Real a, Image b) {
// 成员函数,实现减操作
}
};
int main() {
// 定义类型参数
Real a = 1.0, b = 2.0;
Image c = 3.0;
// 创建复数类对象
Complex complex1(a, b);
// 调用成员函数
complex1.add(a, c);
complex1.getReal(); // 输出 1.0 + 3.0 = 4.0
return 0;
}
int main() {
// 创建复数类对象
Complex complex2(1.0, 2.0);
// 调用成员函数
complex2.add(1.0, 3.0);
complex2.getReal(); // 输出 1.0 + 3.0 = 4.0
return 0;
}
在这个实验中,我们创建了一个简单的复数类模板 Complex,并分别以 Real 和 Image 类型实例化其中的成员函数。在主函数中,我们创建了一个复数类对象 complex2,并调用 Real 和 Image 成员函数,实现了复数中的加、减等基本操作。