C++/summary

순수 가상 함수 - 다형성의 마무리

gandus 2010. 10. 6. 10:50

상속, 재정의, 가상함수(동적 바인딩)

사용시는 업캐스팅 해서 사용해야함

- 다형성의 구현 단계와 사용단계




virtual void draw() = 0;  
- 순수 가상 함수.

하지만 이런 클래스는 객체를 생성할 수 없다.
완전치가 않아서. - > 추상 클래스.

  1. 추상 클래스(abstract class): 순수 가상 함수를 하나라도 가지고 있는 클래스



 

소스 코드의 예

class Shape {

protected:

           int x, y;

 

public:

          

           virtual void draw() = 0;

};

 

class Rectangle : public Shape {

private:

           int width, height;

 

public:

           void draw() {

                     cout << "Rectangle Draw" << endl;

           }

};

 

 

사용은 업캐스팅 재정의된 멤버함수 호출

 

선언 : 부모클래스 타입 포인터변수// 레퍼런스

 

생성 : 자식 클래스 객체

 

예) Animal *p = new Lion();

 p -> move();



추상 클래스를 인터페이스로