Point 클래스 템플릿 특수화
다음의 출력 결과가 나오도록 Point 클래스 템플릿의 특수화를 수행하라 (Point<string>에 대하여 특수화).
출력 결과
[7, 9]
[7.7, 9.7]
[ab ef, cd gh]
입력 및 Point 클래스 템플릿
#include <iostream>
#include <cstdlib>
using namespace std;
template <class T>
class Point {
private:
T x;
T y;
public:
Point(T n1, T n2) : x(n1), y(n2) {};
Point() : x(0), y(0) {};
void ShowPosition() const {
cout << '[' << x << ", " << y << ']' << endl;
}
Point operator+(const Point<T> n2)
{
Point<T> object(x + n2.x, y + n2.y);
return object;
}
};
int main()
{
Point<int> int_pt1(3, 4), int_pt2(4, 5), int_pt_res;
int_pt_res = int_pt1 + int_pt2;
int_pt_res.ShowPosition();
Point<double> double_pt1(3.5, 4.2), double_pt2(4.2, 5.5), double_pt_res;
double_pt_res = double_pt1 + double_pt2;
double_pt_res.ShowPosition();
Point<string> string_pt1("ab", "cd"), string_pt2("ef", "gh"), string_pt_res;
string_pt_res = string_pt1 + string_pt2;
string_pt_res.ShowPosition();
return 0;
}