목록으로 2013.04.10. 20:25
C언어

가상함수(Shape 클래스)

youtube
class Shape 
{
protected:  
    int x, y; 
public:
    Shape(int x=0, int y=0) { this->x = x; this->y = y;} 
    void setOrigin(int x, int y) { this->x = x; this->y = y; }
    virtual void draw() { cout <<"Shape Draw" << endl; }
    void printPosition() { cout << "x : " << x << ", y : " << y << endl; }
};

class Rectangle : public Shape 
{
        private: 
        int width, height;
        public: 
    Rectangle (int x=0, int y=0, int w=5, int h=10) :Shape(x,y)
        {
                width=w;
                height=h;
        }
    void setWidth(int w) 
        {
                width=w;
        }
    void setHeight(int h) 
        {
                height=h; 
        }
    void draw() 
        {
                cout<<"Rectangle draw"<<endl;
        }
    void printPosition() 
        {   
                Shape::printPosition();
                cout<<"width:"<<width<<"height:"<<height<<endl;
        }
};
class Circle : public Shape 
{
private: int radius;
public: Circle(int x=0, int y=0, int r=5):Shape(x,y)
                {
                        radius=r;
                }
                void setRadius(int r)
                {
                        radius=r;
                }
                void draw()
                {
                        cout<<"Circle draw"<<endl;
                }
                void printPosition()
                {
                        Shape::printPosition();
                        cout<<"r:"<<radius;
                }
};

int main() 
{
    Shape *ps = new Rectangle();  // 상향 형변환            
    ps->draw();        

    Shape *ps1 = new Circle();   // 상향형변환
    ps1->draw();

    delete ps;    
    delete ps1;
}

댓글 0

댓글 작성 권한이 없습니다. 로그인하기

NO
TITLE
섬네일
E비즈니스
2 | 12. 20 | 조회
8
E비즈니스 javascript:void(0);
E비즈니스
profile 너에게제공 | 12. 10 | 조회
7
E비즈니스 스마트메뉴
E비즈니스
profile 너에게제공 | 12. 03 | 조회
6
E비즈니스 r견적
E비즈니스
| 11. 15 | 조회
5
E비즈니스 블랙리스트
E비즈니스
| 11. 11 | 조회
4
E비즈니스 위생정리
E비즈니스
profile 너에게제공 | 11. 05 | 조회
3
E비즈니스 맞춤형안경
E비즈니스
profile 너에게제공 | 10. 26 | 조회
2
E비즈니스 f
E비즈니스
profile 너에게제공 | 10. 16 | 조회
1
E비즈니스 E_비즈니스 PPT