虚函数复习3

来源:互联网 发布:怎么在html里用php格式 编辑:程序博客网 时间:2024/05/16 19:31

#include<iostream.h>
class base
{
public:
 virtual void fun1(){cout<<"base fun1"<<endl;}
 virtual void fun2(){cout<<"base fun2"<<endl;}
 void fun3(){cout<<"base fun3"<<endl;}
 void fun4(){cout<<"base fun4"<<endl;}

};
class derived: public base
{
public:
 virtual void fun1(){cout<<"derived fun1"<<endl;}
    virtual void fun2(int x){cout<<"derived fun2"<<endl;}
 virtual void fun3(){cout<<"derived fun3"<<endl;}
 void fun4(){cout<<"dervied fun4"<<endl;}
};
void main()
{  
 base * pb;
 derived d;
 pb=&d;
 pb->fun1();
 pb->fun2();
 pb->fun3();
 pb->fun4();


}
/*
fun1在基类base和派生类的dervied中均使用virutal关键字定义虚函数,并且这两个虚函数具有相同的参数,参数类型,
返回值,因此,当通过指针pb 访问fun1函数时,采用动态联编。
fun2 基类与派生类derived 中具有不同的参数。失去虚函数的特性,在调用时进行静态联编。
fun3,在base 中声明为一般成员函数,而在派生类derived中使用virtual关键字定义为虚函数。在这种情况下,
应该以基类中说明的成员函数的特性为标准,即成员函数fun3为一般函数,在调用时,进行静态联编
fun4为一般成员函数
*/ 

原创粉丝点击