출처 : 반크_반크 20년 백서
● + 연산자를 중복 정의하여서 다음과 같은 연산이 가능하도록 하라.
참고풀이]
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
class Point {
int x, y;
public:
Point(int px = 0, int py = 0)
{
x = px; y = py;
} //생성자 함수
int getX() { return x; } //접근자
int getY() { return y; }
void setX(int px) { x = px; } //설정자
void setY(int py) { y = py; }
~Point() {} //소멸자 함수
};
class ThreeDPoint :public Point { //접근자 지정 protected, public도 가능
int z;
public:
ThreeDPoint(int tx = 0, int ty = 0, int tz = 0) :Point(tx, ty)
{
z = tz;
} //생성자 생성
int getZ() { return z; }
void setZ(int tz) { z = tz; }
void print()
{
cout << "(" << getX() << ", " << getY();
cout << ", " << getZ() << ")\n";
}
~ThreeDPoint() {}
ThreeDPoint operator+(ThreeDPoint& tdp2);
};
ThreeDPoint ThreeDPoint::operator+ (ThreeDPoint& tdp2)
{
ThreeDPoint tdp;
tdp.setX(this->getX() + tdp2.getX());
tdp.setY(this->getY() + tdp2.getY());
tdp.setZ(this->getZ() + tdp2.getZ());
return tdp;
}
int main()
{
ThreeDPoint t1(10, 10, 10);
ThreeDPoint t2(20, 20, 20);
ThreeDPoint t3;
t3 = t1 + t2;
cout << "t1 : "; t1.print();
cout << "t2 : "; t2.print();
cout << "================= +\n";
cout << "t3 : "; t3.print();
return 0;
}
참고풀이 결과]
대한민국의 아름다운 영토, 독도
댓글