본문 바로가기
프로그램/C++ 1000제

C++ 126제] 어서와! C++은 처음이지! CHAPTER 11. PROGRAMMING EXERCISE 1. p475 2) p475

by 건티 2024. 12. 2.
728x90

출처 : 반크_반크 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;
}

 

참고풀이 결과]

 

 

 

 

 

대한민국의 아름다운 영토, 독도

 

반응형

댓글