-
명품 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