"本次实验主要涉及C++编程中的多态性、抽象类和虚函数的使用,以及异常处理机制。实验分为三个部分:1) 定义Point类及其派生的Circle和Rectangle类,实现纯虚函数计算面积;2) 设计Teacher类及其派生的讲师、副教授、教授类,利用虚函数计算工资;3) 编写求平方根程序,通过异常处理机制处理负数输入。"
实验第一部分主要展示了多态的基础应用。在C++中,多态性允许不同类型的对象对同一消息作出不同的响应。这里通过定义一个基类Point,包含x和y坐标属性,并声明了一个纯虚函数`virtual double getArea() = 0;`。纯虚函数使得Point成为一个抽象类,不能被实例化,但可以作为其他类的基类。接着,派生出Circle和Rectangle类,各自实现getArea函数,用于计算圆和矩形的面积。在主函数中,可以创建不同类型的对象,然后通过基类指针或引用调用getArea函数,从而体现多态性。
实验第二部分进一步深入多态性的应用,设计了一个教师类Teacher,具有基本工资、课时费和津贴等属性,并由Teacher派生出讲师、副教授和教授类。每个派生类中定义了计算工资的虚函数,根据不同职称设定不同的薪资标准。主函数中,可以创建不同职称的教师对象,通过基类指针调用计算工资的虚函数,验证了多态性的功能。
实验第三部分涉及C++的异常处理机制。在编写求平方根程序时,可能会遇到负数输入的情况,这是非法的。C++提供了两种异常处理方式:1) 使用内置的`try-catch`语句,当捕获到异常时执行相应的处理代码;2) 定义自定义异常类,当异常发生时抛出自定义异常。无论哪种方式,都是为了在遇到错误情况时能够优雅地处理,而不是让程序崩溃。在主函数中,通过异常处理机制检查输入是否为负数,如果是则抛出异常并给出相应提示。
通过这个实验,学生可以深入理解C++中的多态性、抽象类、虚函数的使用,以及异常处理的重要性。这些概念是面向对象编程的核心组成部分,对于理解和编写复杂程序至关重要。