본문 바로가기
스터디/C++

[ C++ ] 컨트롤(Control)클래스 / 핸들러(Handler) 클래스

by 알 수 없는 사용자 2019. 9. 26.

토끼와 거북이의 경주 프로그램으로 예로 들겠다. ( 글쓴이가 거북이를 좋아해서 딱히 다른 예제가 떠오르지 않는다... )

 

간단한 프로그램이기에 코드도 별거 없다. 그냥 이해를 위한 예제라고 생각하자.. ㅎㅎ

 

거북이 클래스

class Turtle
{
public:
	int vel; // 속도 
	int x; // 위치 
public:
	Turtle(int v) : vel(v), x(0) 
	{ }
	
	void Run()
	{
		x+=vel;
		cout<<"엉금 엉금"<<endl;
	}
	
};

 

토끼 클래스

class Rabbit
{
public:
	int vel; // 속도 
	int x; // 위치 
public:
	Rabbit(int v) : vel(v), x(0) 
	{ }
	
	void Run()
	{
		x+=vel;
		cout<<"깡총 깡총"<<endl;
	}
	
};

 

그리고 경기를 위한 클래스

class RacingHandler
{
public:
	Turtle tur;
	Rabbit rab;
	
public:
	RacingHandler(Turtle &t, Rabbit &r) : tur(t), rab(r)
	{ }
	
	void Racing()
	{
		for (int i=0; i<50; i++)
		{
			tur.Run();
			rab.Run();
		}
	}
	
};

 

그럼 실행 예제를 보자.

 

속도가 10인 거북이와 속도가 50인 토끼가 경주하는 예제이다.

 

이 프로그램에는 총 3개의 클래스가 있다. 

거북이, 토끼, 경주를 위한 클래스

 

이 클래스를

- 거북이, 토끼 ( 기록의 보전을 위해서 파일에 저장할 데이터를 가지고 있는 것 )

- 경주를 위한 클래스 ( 프로그램을 구성하는 대표적인 기능들을 처리하는 클래스 )

 

이렇게 두개로 나눌 수 있다.

 

즉, 거북이, 토끼 클래스만 보면 이 프로그램이 정확히 어떤 기능이 있는지 파악이 안 되지만,

경주를 위한 클래스를 보면 대강 파악이 가능하다.

 

우리는 이렇게 프로그램을 구성하는 대표적인 기능들을 처리하는 클래스를

 

'컨트롤(Control) 클래스' 또는 '핸들러(Handler) 클래스'라고 한다.