简单的c++程序(实验六)

本文通过四个C++程序实例探讨了函数重载和覆盖的概念。实验涉及了动态联编的条件,展示了如何在继承体系中利用虚函数实现多态。程序分别演示了函数重载、覆盖、抽象类及其应用,如计算不同职称教师的工资。通过这些实验,读者可以深入理解静态联编与动态联编的区别,并掌握动态联编的条件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、实验目的和要求

    了解静态联编和动态联编的概念。掌握动态联编的条件。

二、实验内容

1、分析并调试下列程序。

   

  1. //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(float x){ cout<< "Derived::g(float)"<<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. pb->f( 3.14f);
  25. pb->g( 3.14f);
  26. pb->h( 3.14f);
  27. pb->h( 3.14f);
  28. return 0;
  29. }

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

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

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


2、分析并调试下列程序。

  1. //sy6_2.cpp
  2. #include<iostream>
  3. using namespace std;
  4. class Base
  5. {
  6. public:
  7. void f(int x){ cout<< "Base::f(int)"<<x<< endl;}
  8. void f(float x){ cout<< "Base::f(float)"<<x<< endl;}
  9. virtual void g(void){ cout<< "Base::g(void)"<< endl;}
  10. };
  11. class Derived: public Base
  12. {
  13. public:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值