본문 바로가기

C++ 언어/연습문제

C++언어 연습문제34

[문제]

아래의 main 함수를 참고하여 클래스를 수정하라.

조건1) 문제33의 클래스를 기본으로 할 것
조건2) 상속을 사용하지 말 것
int main(void)
{
	Police pman1(5, 3);
	pman1.Shot();
	pman1.PutHandcuff();

	Police pman2(0, 3);
	pman2.Shot();
	pman2.PutHandcuff();

	return 0;
}

 

[실행결과]

BBANG!
SNAP!
Hut BBANG!
SNAP!

 

[코드]

#include<iostream>
using namespace std;

class Gun
{
private:
	int bullet;
public:
	Gun(int bnum) :bullet(bnum)
	{	}
	void Shot()
	{
		cout << "BBANG!" << endl;
		bullet--;
	}
};

class Police
{
private:
	int handcuffs;
	Gun* pistol;
public:
	Police(int bnum, int bcuff)	:handcuffs(bcuff)
	{
		if (bnum > 0)
			pistol = new Gun(bnum);
		else
			pistol = NULL;
	}
	void Shot()
	{
		if (pistol == NULL)
			cout << "Hut BBANG!" << endl;
		else
			pistol->Shot();
	}
	void PutHandcuff()
	{
		cout << "SNAP!" << endl;
		handcuffs--;
	}
	~Police()
	{
		delete pistol;
	}
};

int main(void)
{
	Police pman1(5, 3);
	pman1.Shot();
	pman1.PutHandcuff();

	Police pman2(0, 3);
	pman2.Shot();
	pman2.PutHandcuff();

	return 0;
}

 

<참고>

윤성우의 열혈 C++ 프로그래밍

'C++ 언어 > 연습문제' 카테고리의 다른 글

C++언어 연습문제33  (0) 2022.11.12
C++언어 연습문제32  (0) 2022.11.11
C++언어 연습문제31  (0) 2022.11.11
C++언어 연습문제30  (0) 2022.11.11
C++ 언어 연습문제29  (0) 2022.11.10