ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 명품 C++ 4장 10번
    C++ 2018. 10. 30. 01:05

    10. 다음에서 Person은 사람을. Family는 가족을 추상화한 클래스로서 완성되지 않은 클래스이다.


    class Person {
        string name;
    public:
        Person(string name) { this->name = name; }
        string getName() { return name; }
    };
    class Family {
        Person *p; // Person 배열 포인터
        int size; // Person 배열의 크기. 가족 구성원 수
    public:
        Family(string name, int size); // size 개수만큼 Person 배열 동적 생성
        void show(); // 모든 가족 구성원 출력
        ~Family();
    };


    다음 main()이 작동하도록 Person과 Family 클래스에 필요한 멤버들을 추가하고 코드를 완성하라


    소스코드


    #include <iostream>
    #include <string>
    using namespace std;
    class Person {
        string name;
    public:
        Person() { name = " "; }
        Person(string name) { this->name = name; }
        string getName() { return name; }
        void setName(string name) { this->name = name; }
    };
    class Family {
        Person *p;
        int size;
        string name;
    public:
        Family(string name, int size);
        void show();
        ~Family();
        void setName(int index, string name);
    };
    Family::Family(string name, int size) {
        p = new Person[size];
        this->size = size;
        this->name = name;
    }
    void Family::show() {
        cout << name << "가족은 다음과 같이" << size << "명 입니다."<<endl;
        for (int i = 0; i < size; ++i) {
            cout << p[i].getName() << "\t";
        }
        cout << endl;
    }
    void Family::setName(int index, string name) {
        p[index].setName(name);
    }
    Family::~Family() {
        delete [] p;
    }
    int main() {
        Family *simpson = new Family("Simpson", 3);
        simpson->setName(0, "Mr. Simpson");
        simpson->setName(1, "Mrs. Simpson");
        simpson->setName(2, "Bart Simpson");
        simpson->show();
        delete simpson;
    }


    실행결과



    구체적인 이름을 저장하기 위해 Person 클래스에 setName 멤버함수를 Family 클래스에 setName 멤버함수를 추가 했습니다.

    생성자에 있는 simpson 을 입력하기 위해 Family에 name을 추가하였습니다.



    'C++' 카테고리의 다른 글

    명품 C++ 4장 12번  (0) 2018.10.30
    명품 C++ 4장 11번  (0) 2018.10.30
    명품 C++ 4장 9번  (0) 2018.10.30
    명품 C++ 4장 8번  (1) 2018.10.30
    명품 C++ 4장 7번  (0) 2018.10.30

    댓글

© 2018 TISTORY. All rights reserved.