图6.18类层次图程序如下:本程序的执行结果如下:圆桌属性数据:高度:0.6米桌面半径:0.5米面积:0.785平方米颜色:白色设计一个虚基类Person,包含姓名和年龄私有数据成员以及相关的成员函数,由它派生出领导类Leader,包含职务和部门私有数据成员以及相关的成员函数,再由Person派生出工程师类Engineer,包含职称和专业私有数据成员以及相关的成员函数,然后由Leader和Engineer类派生出主任工程师类Chairman。......
2025-09-30
【例9.6】编写一个程序,设计一个学生类Student,采用异常处理的方法,在输入学生类Student对象的数据时检测成绩输入是否正确。
解:在Student类中设计一个getinfor()成员函数,用于输入学生数据,当成绩score大于100小于0时抛掷一个异常。然后在catch()中显示相应的出错信息并调用getscore()成员函数继续输入该生的成绩。程序如下:
本程序的一次执行结果如下:
输入数据:
输入学号姓名成绩:101李英-100↙
李英成绩不正确,重新输入:90↙
输入学号姓名成绩:102张华80↙
输入学号姓名成绩:103王丽92↙
输入学号姓名成绩:104钱明130↙
钱明成绩不正确,重新输入:98↙
输出数据:
101 李英 90
102 张华 80
103 王丽 92(https://www.chuimin.cn)
104 钱明 98
【例9.7】编写一个程序,采用异常处理的方法,在指定的文件不存在时显示出错信息;文件存在时显示其大小。
解:当文件流fileinfor不存在时,抛掷一个字符串错误,在catch()中检测该错误,输出出错信息。程序如下:
本程序的一次执行结果如下:
文件名:TestFile.txt↙
TestFile.txt文件不存在!
9.1 当异常被抛出时,程序的控制权会如何转换?
9.2 简述一次捕获所有异常的方法。
9.3 程序抛出异常时,程序的控制权还会再回到原来的抛出点吗?
9.4 使用catch(...)来捕获所有的异常有什么优点和缺点?
9.5 一个try区块可以对应多个catch区块,有什么要求吗?
9.6 给出以下程序的执行结果。
相关文章
 
                                
                                图6.18类层次图程序如下:本程序的执行结果如下:圆桌属性数据:高度:0.6米桌面半径:0.5米面积:0.785平方米颜色:白色设计一个虚基类Person,包含姓名和年龄私有数据成员以及相关的成员函数,由它派生出领导类Leader,包含职务和部门私有数据成员以及相关的成员函数,再由Person派生出工程师类Engineer,包含职称和专业私有数据成员以及相关的成员函数,然后由Leader和Engineer类派生出主任工程师类Chairman。......
2025-09-30
 
                                
                                编写一个程序,声明一个点类Point,实现点的偏移,==,!其中各个成员函数就是实现这种转换并完成相应的矩阵运算功能。程序的执行结果如下:A矩阵:123456B矩阵:123456C矩阵:142536A+B矩阵:2468 10 12A-B矩阵:000000A*C矩阵:14 3232 77虽然这种转换比较复杂,但解决了矩阵运算通用性问题。......
2025-09-30
 
                                
                                C++支持三种格式的循环控制语句:while、do和for语句。图1.3while语句的执行过程编写一个程序,将用户输入的整数反向显示出来。解:程序如下:3.for语句for语句通常用于预先知道循环次数的情况,其一般形式为:for语句;其中,“初始化语句”可以是一个定义语句或表达式语句,一般用于对一组变量进行初始化或赋值。“表达式2”在每次循环执行完成后执行,一般用于改变控制循环的变量。......
2025-09-30
 
                                
                                类的每一个成员函数都有一个隐含的特殊指针,通常称为this指针,this指针的类型就是成员函数所属的类型。通常不显式使用this指针。this指针是C++实现封装的一种机制,它将对象和该对象调用的成员函数连接在一起,在外部看来,每个对象都拥有自己的成员函数。this指针一般用于返回当前对象自身。程序的执行结果如下:s1∶n=2s2∶n=1s3∶n=3this指针大量用于运算符重载成员函数设计中,这将在后面详细介绍。......
2025-09-30
 
                                
                                C++中,语句默认都是顺序执行,如果碰到选择或循环语句,顺序执行的规则就要改变。C++中的选择控制语句有if语句、if...else语句、if...else if语句和sw itch语句。对于简单的if...else语句,可以使用条件运算符来代替。“语句1”、“语句2”、…使用sw itch语句应注意下列问题:◇整型表达式包括字符型或枚举型表达式。......
2025-09-30
 
                                
                                在类声明中,public、private和protected是关键字,称为成员访问限定符,它们分别表示公有、私有和保护的成员访问权限。其他函数不能访问该类的保护数据成员,也不能调用该类的保护成员函数。◇一旦给出了成员访问限定符,它后面的成员都具有这个成员访问权限,直到出现另一个成员访问限定符或类声明结束为止。类的成员函数可以访问类的所有成员,没有任何限制,而类的对象对类的成员的访问是受成员访问控制符制约的。......
2025-09-30
 
                                
                                C++是一种编译性的语言,设计好一个C++源程序后,需要经过编译、连接,生成可执行的程序文件,然后执行并调试程序。当C++源程序设计好后,程序员利用一个编辑系统将源程序输入计算机中的某一个文件中,并进行必要的修改。C++源程序文件的扩展名为.cpp。在VC++6.0环境中,编译和连接两个步骤是由系统本身一次完成的。完整的C++程序的开发步骤如图1.2所示。图1.2C++程序开发步骤......
2025-09-30
 
                                
                                表8.2流格式状态标志续表2.设置流格式状态标志的成员函数虽然无法直接对流格式状态标志进行操作,但可以使用ios类提供的公有成员函数来操作这些标志。例如,以下程序用成员函数setf设置ios∷left标志,用unsetf清除ios∷left设置:程序执行结果如下:默认对齐456.23456.23左对齐456.23456.23恢复默认齐456.23456.23采用setiosflags/resetiosflags操纵符是等价的。......
2025-09-30
相关推荐