定义类模板Point,有两个坐标(x,y),x和y的类型可以不同,坐标的数据类型可以是int、float,double类型. 具有获取坐标的成员函数getX和getY。 接口定义: class Point 裁判测试程序 #include <iostream> using namespace std; @@@ int main() { Point<int, int> p1(10, 20); Point<int, float> p2(10, 20.5f); Point<float, float> p3(10.5f, 20.5f); Point<double, double > p4(10.5, 20.5); cout<<p1.getX()<<","<<p1.getY()<<endl; cout<<p2.getX()<<","<<p2.getY()<<endl; cout<<p3.getX()<<","<<p3.getY()<<endl; cout<<p4.getX()<<","<<p4.getY()<<endl; return 0; } /* 请在这里填写答案 */
时间: 2023-10-30 15:33:14 浏览: 100
以下是使用C++实现的程序:
```c++
#include <iostream>
using namespace std;
template<typename T1, typename T2>
class Point {
private:
T1 x;
T2 y;
public:
Point(T1 x, T2 y) {
this->x = x;
this->y = y;
}
T1 getX() {
return x;
}
T2 getY() {
return y;
}
};
int main() {
Point<int, int> p1(10, 20);
Point<int, float> p2(10, 20.5f);
Point<float, float> p3(10.5f, 20.5f);
Point<double, double> p4(10.5, 20.5);
cout << p1.getX() << "," << p1.getY() << endl;
cout << p2.getX() << "," << p2.getY() << endl;
cout << p3.getX() << "," << p3.getY() << endl;
cout << p4.getX() << "," << p4.getY() << endl;
return 0;
}
```
在上面的程序中,我们首先定义了一个类模板Point,它有两个私有成员变量x和y,分别表示两个坐标。在类模板中,我们定义了一个构造函数和两个成员函数getX和getY,分别用于获取x和y的值。
在main函数中,我们分别定义了四个Point对象,分别使用不同的数据类型来定义x和y的类型。然后我们分别调用它们的getX和getY函数来获取坐标的值,并输出到控制台上。
需要注意的是,类模板的定义需要在类名后面加上<typename T1, typename T2>,表示这是一个有两个类型参数的模板类。在类模板中,我们可以使用T1和T2来表示两个类型参数。
阅读全文