본문 바로가기

C++/상속의 이해

상속의설정의 포함관계 3가지방법 (메모리구조는 다르게 된다.)


//============================== 헤더 파일 ===============================================

#include <iostream>

using std::cout;
using std::endl;

class cugel
{
public:
 void swing()
 {
  cout<<"swing a cougel"<<endl;
 }
};

class police : public cugel
{
public:
 void use_weapon()
 {
  swing();
 }
};

class police2
{

 cugel cg;//객체맴버(또는 객체 클래스맴버)
 public:
  void use_weapon()
  {
   cg.swing();
  }
};

class police3
{
 cugel *p_cg;//폴리스객체는 커졀객체를 포인터로가리키고 있지만 논리지적을 폴리스객체는 커절객체를 포함
public:
 police3()
 {
  p_cg =new cugel;
 }
 ~police3()
 {
  delete p_cg;
 }
 void useweapon()
 {
  p_cg->swing();
 }
};

//============================================main 함수============================================
#include "haza1.h"

int main()
{
 police plc;
 plc.swing();
 cout<<"2번째 예제"<<endl;
 police2 pol2;
 pol2.use_weapon();

 cout<<"3번째 예제"<<endl;
 police3 pol;
 pol.useweapon();
 return 0;
}