인터페이스 다중 상속(구현) [디딤돌 C++]
//인터페이스 다중 상속
//Program.cpp
#include <iostream>
#include <string>
using namespace std;
#define interface struct
interface IPlay
{
virtual void Play()=0;
};
interface IStudy
{
virtual void Study()=0;
};
class Man
{
string name;
public:
Man(string name)
{
this->name = name;
}
void View()
{
cout<<"이름은 "<<name<<"입니다."<<endl;
}
string GetName()
{
return name;
}
};
class Student:public Man, public IStudy
{
public:
Student(string name):Man(name)
{
}
virtual void Study()
{
cout<<GetName()<<" 공부하다."<<endl;
}
};
class BaseBallPlayer:public Man, public IPlay
{
public:
BaseBallPlayer(string name):Man(name)
{
}
virtual void Play()
{
cout<<GetName()<<" 운동하다."<<endl;
}
};
class BaseBallPlayerStudent:public Man, public IStudy, public IPlay
{
public:
BaseBallPlayerStudent(string name):Man(name)
{
}
virtual void Play()
{
cout<<GetName()<<" 운동하다."<<endl;
}
virtual void Study()
{
cout<<GetName()<<" 공부하다."<<endl;
}
};
int main()
{
BaseBallPlayerStudent *bbps = new BaseBallPlayerStudent("홍길동");
bbps->View();
bbps->Play();
bbps->Study();
delete bbps;
return 0;
}
* 디딤돌 C++ 36. 다중상속에서
'C++ > 디딤돌 C++' 카테고리의 다른 글
강제 형변환이 갖는 위험 요소 [디딤돌 C++] (0) | 2016.04.17 |
---|---|
하향 캐스팅 [디딤돌 C++] (0) | 2016.04.14 |
가상(virtual) 상속 [디딤돌 C++] (0) | 2016.04.14 |
다중 상속의 모호함 [디딤돌 C++] (0) | 2016.04.14 |
클래스로 인터페이스 표현 [디딤돌 C++] (0) | 2016.04.14 |