8.3(금) C++ - 다형성의 기본

from Study/C++ 2007/08/07 20:54 view 17991

// C++에서다형성을지원하기위해있는문법

// 1. 가상함수- 실행시간다형성

// 2. 템플릿  - 컴파일시간다형성

// 3. 오버로딩- 컴파일시간


class Animal

{

public:

        virtual void Cry() {}  // 1

};

 

class Dog : public Animal

{

public:

        virtual void Cry() {}  // 2

};

 

template<typename T> void foo( T a )  // Cry라는함수가없다면에러가나온다.

{

        a.Cry();       // 다형성-> 컴파일타임에결정된다. ( type을알고있다. )

}

 

 

void foo( Animal* p )  // Animal의자식들만받는다.

{

        p->Cry();      // 1 ? 2 다형성-> 실행시간다형성( 메모리를찾아간다. )

}

 

 

Tag |

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