实验6 多态性与虚函数

本文介绍了C++中的多态性与虚函数的概念,通过实例展示了函数重载和覆盖的使用。实验内容包括如何在基类和派生类中定义和调用虚函数,以及静态联编和动态联编的区别。最后,作者总结了动态联编的条件和重载、覆盖函数的要点,强调了理论学习与实践操作的重要性。
摘要由CSDN通过智能技术生成

实验目的和要求

     了解静态联编的动态联编的概念。掌握动态联编的条件。
实验内容
1.分析并调试下列程序。
[cpp]  view plain   copy
  1. <span style="font-family:SimSun;font-size:16px;">//sy6_1.cpp  
  2. #include<iostream>  
  3. using namespace std;  
  4. class Base  
  5. {  
  6.     public:  
  7.         virtual void f(float x){cout<<"Base::f(float)"<<x<<endl;}  
  8.         void g(float x){cout<<"Base::g(float)"<<x<<endl;}  
  9.         void h(float x){cout<<"Base::h(float)"<<x<<endl;}  
  10. };  
  11. class Derived:public Base  
  12. {  
  13.     public:  
  14.         virtual void f(float x){cout<<"Derived::f(float}"<<x<<endl;}  
  15.         void g(int x){cout<<"Derived::g(int)"<<x<<endl;}  
  16.         void h(float x){cout<<"Derived::h(float)"<<x<<endl;}  
  17. };  
  18. int main()  
  19. {  
  20.     Derived d;  
  21.     Base *pb=&d;  
  22.     Derived *pd=&d;  
  23.     pb->f(3.14f);  
  24.     pd->f(3.14f);  
  25.     pb->g(3.14f);  
  26.     pb->h(3.14f);  
  27.     pd->h(3.14f);  
  28.     return 0;  
  29. }</span>  

(1)找出以上程序中使用了重载和覆盖函数。

答:Base类中函数void g(); 和void h();与Derived类中的函数void g(); 和void h();函数名相同,参数类型不同,构成了函数重载。

(2)写出程序的输出结果,并解释输出结果。
程序的输出结果如下:

2 . 分析并调试下列程序
[cpp]  view plain   copy
  1. <span style="font-size:18px;">//sy6_3.cpp</span>  
  2. <span style="font-size:18px;">#include<iostream></span>  
  3. <span style="font-size:18px;">using namespace std;</span>  
  4. <span style="font-size:18px;">class Base</span>  
  5. <span style="font-size:18px;">{</span>  
  6. <span style="font-size:18px;">    public:</span>  
  7. <span style="font-size:18px;">        void f(int x){cout<<"Base::f(int)"<<x<<endl;}</span>  
  8. <span style="font-size:18px;">        void f(float x){cout<<"Base::f(float)"<<x<<endl;}</span>  
  9. <span style="font-size:18px;">        virtual void g(void){cout<<"Base::g(void)"<<endl;}</span>  
  10. <span style="font-size:18px;">};</span>  
  11. <span style="font-size:18px;">class Derived:public Base</span>  
  12. <span style="font-size:18px;">{</span>  
  13. <span style="font-size:18px;">    public:</span>  
  14. <span style="font-size:18px;">        virtual 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值