본문 바로가기

C++ 언어/연습문제

C++ 언어 연습문제21

[문제]

이름과 나이를 입력 받아 저장하고 출력하는 프로그램을 작성하라.

조건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