C++虚函数的的实现

来源:互联网 发布:手机淘宝客服在哪里找 编辑:程序博客网 时间:2024/06/05 04:38

/********************************************************************
##File:         duotai.cpp
@@Created:      Sep 29th 2009
$$Author:       Freeking
%%Description:  关于C++虚函数的的实现
***********************************************************************/
#include <iostream>

using namespace std;
 class Shape
 {
     public:
        virtual void dispaly(){
            cout<<"Shape"<<endl;
        }
 };

  class Ellipse:public Shape
 {
     public:
         void dispaly(){
            cout<<"Ellispe"<<endl;
        }
 };

class Circle:public Shape
 {
     public:
         void dispaly(){
            cout<<"Circle"<<endl;
        }
 };

class Triangle:public Shape
 {
     public:
         void dispaly(){
            cout<<"Triangle"<<endl;
        }
 };
class Square:public Shape
 {
     public:
        void dispaly(){
            cout<<"Square"<<endl;
        }
 };

 class Rect:public Shape
 {
     public:
         void dispaly(){
            cout<<"Rect"<<endl;
        }
 };
int main()
{
    Shape aShape;
    Ellipse aEllipse;
    Circle aCircle;
    Triangle aTriangle;
    Square aSquare;
    Rect aRect;

    cout<<"对象切割后的结果"<<endl;
    ((Shape)aRect).dispaly();
    Shape* pShape[5] = {&aEllipse, &aCircle, &aTriangle, &aSquare, &aRect };
    cout<<"没有切割的地址赋值"<<endl;
    for(int i=0; i<5; i++)
    pShape[i]->dispaly();

    return 0;
}

原创粉丝点击