[문제]
이름과 나이를 입력 받아 저장하고 출력하는 프로그램을 작성하라.
조건1) Person이라는 클래스를 정의할 것
조건2) 객체 배열을 선언할 것
조건3) 이름과 나이를 입력 받아 저장하는 함수 SetPersonInfo(char* myname, int myage)를 만들 것
조건4) 이름과 나이를 출력하는 함수 ShowPersonInfo를 만들 것
조건5) 생성자 호출 시 called Person()이 출력되고, 소멸자 호출 시 called destructor!가 출력되도록 할 것
[실행 결과]
called Person()
called Person()
called Person()
이름: 한지수
나이: 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;
}
void SetPersonInfo(char* myname, int myage)
{
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];
char* strptr;
int age;
int len;
for (int i = 0; i < 3; i++)
{
cout << "이름: ";
cin >> namestr;
cout << "나이: ";
cin >> age;
len = strlen(namestr) + 1;
strptr = new(char[len]);
strcpy(strptr, namestr);
parr[i].SetPersonInfo(strptr, age);
}
parr[0].ShowPersonInfo();
parr[1].ShowPersonInfo();
parr[2].ShowPersonInfo();
return 0;
}
<참고>
윤성우의 열혈 C++ 프로그래밍
'C++ 언어 > 연습문제' 카테고리의 다른 글
C++ 언어 연습문제23 (0) | 2022.10.24 |
---|---|
C++ 언어 연습문제22 (0) | 2022.10.24 |
C++ 언어 연습문제20 (0) | 2022.10.21 |
C++ 언어 연습문제19 (0) | 2022.10.20 |
C++ 언어 연습문제18 (0) | 2022.10.20 |