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

C++ 132제] 어서와! C++은 처음이지! CHAPTER 11. PROGRAMMING EXERCISE 7. p477

by 건티 2024. 12. 9.
728x90

출처 : 반크_반크 20년 백서

 

참고풀이]

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstring>
using namespace std;

class Person {
   string jop;
   int age;
public:
   Person(string j, int a):jop(j), age(a) {}
   string getJop() { return jop; }
   int getAge() { return age; }
   void setJop(string j) { jop = j; }
   void setAge(int a) { age = a; }

   void eat() { cout << "먹을 수 있음.\n"; }
   void talk() { cout << "말할 수 있음.\n"; }
   void run() { cout << "걸을 수 있음.\n"; }
   void Print()
   {
      cout << "나의 직업 : " << getJop() << endl;
      cout << "나의 나이 : " << getAge() << endl;
      eat();
      talk();
      run();
   }
};

class Professor :public Person {
public:
   Professor(string j, int a):Person(j,a) {}
   void teach() { cout << "가르칠 수 있음.\n"; }
   void Print()
   {
      cout << "나의 직업 : " << getJop() << endl;
      cout << "나의 나이 : " << getAge() << endl;
      run();
      talk();
      teach();
   }
};

class TennisPlayer :public Person {
public:
   TennisPlayer(string j, int a) :Person(j, a) {}
   void playTennis() { cout << "테니스 경기를 할 수 있음.\n"; }
   void Print()
   {
      cout << "나의 직업 : " << getJop() << endl;
      cout << "나의 나이 : " << getAge() << endl;
      run();
      talk();
      playTennis();
   }
};

class Businessman :public Person {
public:
   Businessman(string j, int a) :Person(j, a) {}
   void runBusiness() { cout << "업무를 할 수 있음.\n"; }
   void Print()
   {
      cout << "나의 직업 : " << getJop() << endl;
      cout << "나의 나이 : " << getAge() << endl;
      run();
      talk();
      runBusiness();
   }
};

int main()
{
   Professor f("교수", 39);
   TennisPlayer t("테니스 선수", 23);

   f.Print();
   cout << "\n";

   t.Print();

   return 0;
}

 

참고풀이 결과]

 

 

 

 

 

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

 

반응형

댓글