• 多态

多态就是多种形态,C++的多态分为静态多态和动态多态。

  1. 静态多态就是重载,因为是在编译期决议确定,所以称为静态多态。

  2. 动态多态就是通过继承重写基类的虚函数实现的多态,因为是在运行时决议确定,所以称为动态多态。

class Base

{

public :

     virtual void func1()

    {

          cout<<"Base::func1" <<endl;

    }

     virtual void func2()

    {

          cout<<"Base::func2" <<endl;

    }

     void display ()

    {

          cout<<"display()" <<endl;

    }

     void display (int i)

    {

          cout<<"display(int i)->" <<i<< endl;

    }

private :

     int a ;

};

class Derive :public Base

{

public :

     virtual void func1()

    {

          cout<<"Derive::func1" <<endl;

    }

     virtual void func3()

    {

          cout<<"Derive::func3" <<endl;

    }

     virtual void func4()

    {

          cout<<"Derive::func4" <<endl;

    }

private :

     int b ;

};

void func (Base& b)

{

     b.func1 ();

     //b.func2();

     b.display ();

     b.display (10);

}

void Test1 ()

{

     Base b1 ;

     Derive d1 ;

     func(b1 );

     func(d1 );

}

0b5f9310-2b10-4118-9943-6065dc6c2054.png