码迷,mamicode.com
首页 > 其他好文 > 详细

静态多态和动态多态

时间:2015-09-20 07:04:07      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:静态多态和动态多态

  • 多态

多态就是多种形态,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 );

}


技术分享


静态多态和动态多态

标签:静态多态和动态多态

原文地址:http://10622551.blog.51cto.com/10612551/1696425

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!