C++语言的函数重载、重写、覆盖的示例,及C++多态的两种方法

来源:互联网 发布:spring 源码书籍推荐 编辑:程序博客网 时间:2024/06/16 14:34

如下面代码段:

(1)本代码段包括了函数的重载、重写、覆盖。

(2)本代码段示例了实现多态的两种方法:基类的指针和基类的引用。

#include <iostream>using namespace std;class Base{public:    //fun是函数重写,实现多态,    virtual void fun(int num=10)    {        cout<<"i'm base fun with "<<num<<endl;    }    //fun1是函数覆盖    void fun1()    {        cout<<"i'm base fun with "<<0<<endl;    }};class Derived :public Base{public:    virtual void fun(int num=20)    {        cout<<"i'm derived fun with "<<num<<endl;    }    void fun1()    {        cout<<"i'm derived fun with "<<1<<endl;    }    //本fun1是函数重载    void fun1(int num)    {        cout<<"i'm derived fun with "<<num<<endl;    }};int main(int argc, char **argv){    Derived d;    Base &b = d;    b.fun1();    d.fun1();    Base *pb = &d;    pb->fun1();    ((Derived*)pb)->fun1();    d.fun1(10);    system("pause");    return 0;}