[문제]
이름과 나이를 입력 받아 저장하고 출력하는 프로그램을 작성하라.
조건1) Person이라는 클래스를 정의할 것
조건2) 객체 포인터 배열을 사용할 것
조건3) 이름과 나이를 출력하는 함수 ShowPersonInfo를 만들 것
조건4) 생성자 호출 시 called Person()이 출력되고, 소멸자 호출 시 called destructor!가 출력되도록 할 것
[실행 결과]
이름: 한지수
나이: 21
이름: 양은정
나이: 31
이름: 이한영
나이: 34
이름: 한지수, 나이: 21
이름: 양은정, 나이: 31
이름: 이한영, 나이: 34
called destructor!
called destructor!
called destructor!
[코드]
#include<iostream>
#include<cstring>
using namespace std;
class Person
{
private:
char* name;
int age;
public:
Person()
{
name = NULL;
age = 0;
cout << "called Person()" << endl;
}
Person(char* myname, int myage)
{
int len = strlen(myname) + 1;
name = new(char[len]);
strcpy(name, myname);
age = myage;
}
void ShowPersonInfo() const
{
cout << "이름: " << name << ", ";
cout << "나이: " << age << endl;
}
~Person()
{
delete []name;
cout << "called destructor!" << endl;
}
};
int main(void)
{
Person* parr[3];
char namestr[100];
int age;
for (int i = 0; i < 3; i++)
{
cout << "이름: ";
cin >> namestr;
cout << "나이: ";
cin >> age;
parr[i] = new Person(namestr, age);
}
parr[0]->ShowPersonInfo();
parr[1]->ShowPersonInfo();
parr[2]->ShowPersonInfo();
delete parr[0];
delete parr[1];
delete parr[2];
return 0;
}
<참고>
윤성우의 열혈 C++ 프로그래밍
'C++ 언어 > 연습문제' 카테고리의 다른 글
C++ 언어 연습문제24 (0) | 2022.10.24 |
---|---|
C++ 언어 연습문제23 (0) | 2022.10.24 |
C++ 언어 연습문제21 (0) | 2022.10.24 |
C++ 언어 연습문제20 (0) | 2022.10.21 |
C++ 언어 연습문제19 (0) | 2022.10.20 |