面向对象程序设计:继承与派生类解析

版权申诉
0 下载量 14 浏览量 更新于2024-09-01 收藏 20KB DOCX 举报
"地大《面向对象程序设计(新)》在线作业二-0012" 本资源是一份关于面向对象程序设计的在线作业,适用于网络教育环境,特别是中国地质大学的相关课程。作业涵盖了面向对象编程的关键概念,如继承、访问修饰符、静态成员初始化、C++流的操作以及异常处理机制等。 1. 继承的访问修饰符: - A选项正确:在公有继承中,基类的public成员在派生类中保持public。 - B选项错误(题目答案):实际上,基类的private成员在派生类中仍然是不可见的,而不是仍是private。 - C选项正确:基类中的protected成员在公有继承的派生类中保持protected。 - D选项正确:私有继承时,基类的public成员在派生类中变为private。 2. 派生类与基类的关系: - A选项正确:派生类的对象可以赋值给基类的对象。 - B选项正确:派生类的对象可以初始化基类的引用。 - C选项错误(题目答案):派生类对象不能直接访问基类的私有或受保护成员,除非基类提供了访问这些成员的公共接口。 - D选项正确:派生类对象的地址可以赋给指向基类的指针。 3. 静态成员的初始化: - 题目中的类`class Point`有一个静态成员`how_many`,正确的初始化方式是在类外部使用`int Point::`前缀,即`int Point::how_many=0;`,因此答案是C。 4. C++流操作: - A选项错误(题目答案):`setw`操作符设置的输出宽度只对当前输出流有效,不是永久有效。 - B选项正确:`endl`操作符用于结束当前行并刷新输出缓冲区。 - C选项正确:处理文件I/O时需要包含`<fstream>`头文件。 - D选项正确:`eof()`函数用于检测是否已到达文件尾部。 5. C++异常处理: - A选项:`try`块用于捕获异常。 - B选项:`throw`用于抛出异常。 - C选项:`catch`用于捕获和处理异常。 - D选项错误(题目答案):C++标准库中没有`finally`关键字,但可以使用`catch(...)`来处理所有类型的异常。 6. 重载操作符: - A选项:表示一个非成员函数重载加号操作符,接受两个`AB`对象作为参数,这不是成员函数的声明。 - B选项正确:表示一个成员函数重载加号操作符,接受一个`AB`对象作为参数,返回值为`AB`对象。 - C选项:不是一个有效的成员函数声明。 - D选项:表示一个返回引用的成员函数,但这通常用于自增运算符而非加法。 7. C++流控制符的头文件: - A选项:`endl`是一个操作符,不是头文件。 - B选项:`hex`也不是头文件,它是一个流操纵符,用于将流设置为十六进制输出模式。 - C选项:`setw`是流操纵符,用于设置输出字段宽度,其相关的头文件是`iomanip`。 - D选项:`left`是另一个流操纵符,用于左对齐输出,同样需要`iomanip`头文件。 8. 类的构造函数数量: - 题目中的类`MyClass`只有一个带参数的构造函数,用于初始化`value`成员。其他选项中提到的默认构造函数、拷贝构造函数等在此没有显示定义,因此答案是A。 这份作业测试了学生对C++中面向对象编程基础概念的理解,包括类、继承、访问控制、流操作、异常处理以及操作符重载等关键点。