7.31(화) C++ - 추상클래스

from Study/C++ 2007/08/02 15:46 view 19128

// 순수 가상함수 와 추상클래스

// 의미: 자식에게 반드시 특정함수를 만들게 하는것!

// Abstract Base Class 추상기반클래스

 

// 강한결합 tightly compling 값에 의한 전달!

// 약한결합 loosely compling 인터페이스에 의한 결합


//
사람과 전화기 제조업자가 지켜야 하는 계약서를 먼저 만든다. ( interface, contract )
// 인터페이스 설계의 중요성 : 확장성, 변화에 유연해 진다.
//
구현 부분이 없기 때문에 메모리를 잡지 않는다.

#define interface struct      //왠지 의미전달이 제대로 된다.멋있음.!!!

interface IPhone

{

        virtual void Calling( char* num ) = 0;

};

class IMP3Play

{

public:

        virtual void MP3Play() = 0;

};

 

//---------------------------------------------------------------

// 계약에 따른 전화기를 사용하는 객체

class People

{

public:

        void UsePhone( IPhone* p )    { p->Calling("119"); }

};

 

// 모든 전화기는 IPhone 인터페이스를 구현해야(상속 받아서 순수가상함수 재정의) 한다.

class AnyCall : public IPhone

{

public:

        void Calling( char* ) {}

};

 

void main()

{

        People p;

        AnyCall a;

 

        p.UsePhone( &a );

}

 

Tag |

Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다