第13周 读程序答题-3

#include <iostream>
using namespace std;
class Vehicle{
public:
    virtual void run() const = 0; //(3) run()为纯虚函数,const意指其为常成员函数,并非纯虚函数之必要
};
class Car: public Vehicle  //汽车
{
public:
    void run() const
    { cout << "run a car. "<<endl; }
};
class Airplane: public Vehicle  //飞机
{
public:
    void run() const
    { cout << "run a airplane. "<<endl; }
};
int main()
{
    cout<<"(a) 直接用对象访问成员函数: "<<endl;
    //Vehicle v;
   // v.run();
    Car car;
    Airplane airplane;
    car.run();
    airplane.run();
    cout<<"(b)用指向基类的指针访问成员函数: "<<endl;
    Vehicle *vp;
    vp=&car;
    vp->run();
    vp=&airplane;
    vp->run();
    return 0;
}

运行结果:

(3)如果将Vehicle类的定义修改为纯虚函数,找出main()函数中将使编译出错的行删除(或改为注释),请写出程序的执行结果,并在上机时对照理解

请回答:当基类同名成员函数定义为纯虚函数后,发生了什么现象?为什么会这样?

报错

因为纯虚函数不能创建对象

时间: 2024-08-01 16:25:45

第13周 读程序答题-3的相关文章

第13周 读代码答题-2

#include <iostream> using namespace std; class Vehicle { public: virtual void run() const { cout << "run a vehicle. "<<endl; } //(2) run()为虚函数 }; class Car: public Vehicle //汽车 { public: void run() const { cout << "r

第13周 看代码答题-1

#include <iostream> using namespace std; class Vehicle //交通工具 { public: void run() const { cout << "run a vehicle. "<<endl; } }; class Car: public Vehicle //汽车 { public: void run() const { cout << "run a car. "&

20145239 《信息安全系统设计基础》第13周学习总结

20145239 <信息安全系统设计基础>第13周学习总结 本周代码实践 hello_multi.c 先打印world换行打印hello,间隔1秒再打印相同内容,一共打印5次,最后输出t1,t2 finished hello_multi1.c hello_single.c 打印一个hello,之后每间隔1秒打印一 个hello,共5个:然后打印一个world并换行,之后每间隔1秒打印一个world,共5个 incprint.c 在屏幕上换行输出count=1,2,3,4,5,间隔1秒 twor

2017-2018-1 20155332 《信息安全系统设计基础》第13周学习总结

2017-2018-1 20155332 <信息安全系统设计基础>第13周学习总结 学习目标 找出全书你认为最重要的一章,深入重新学习一下,要求(期末占10分): 完成这一章所有习题 详细总结本章要点 给你的结对学习搭档讲解你的总结并获取反馈 本章知识点总结 我们需要理解基本的客户端-服务端编程模型,以及如何编写使用因特网提供的服务的客户端-服务端程序. 最后,我们将把所有这些概念结合起来,开发一个小的但功能齐全的Web服务器,能够为真实的Web浏览器提供静态的和动态的文本和图形内容. 11.

2017-2018-1 20155305 《信息安全系统设计基础》第13周学习总结

2017-2018-1 20155305 <信息安全系统设计基础>第13周学习总结 学习目标 找出全书你认为最重要的一章,深入重新学习一下,要求(期末占10分): 完成这一章所有习题 详细总结本章要点 给你的结对学习搭档讲解你的总结并获取反馈 课后习题 10.1 运行练习题10.1时,一开始运行结果是fd=-1,不是应该出现的正确结果fd=3 解决方法:之前学习课本open函数时,如果返回值是-1的话说明打开出错,只有打开成功,返回值为新文件描述符(返回的描述符总是在进程中当前没有打开的最小描

20155236 《信息安全系统设计基础》第13周学习总结

20155236 <信息安全系统设计基础>第13周学习总结 网络编程 套接字接口概述: 并发编程 并发:逻辑控制流在时间上重叠 并发程序:使用应用级并发的应用程序称为并发程序. 三种基本的构造并发程序的方法: 进程,用内核来调用和维护,有独立的虚拟地址空间,显式的进程间通信机制. I/O多路复用,应用程序在一个进程的上下文中显式的调度控制流.逻辑流被模型化为状态机. 线程,运行在一个单一进程上下文中的逻辑流.由内核进行调度,共享同一个虚拟地址空间. 基于进程的并发编程 构造并发程序最简单的方法

2017-2018-1 20155210 《信息安全系统设计基础》第13周学习总结

2017-2018-1 20155210 <信息安全系统设计基础>第13周学习总结 找出全书你认为最重要的一章,深入重新学习一下 完成这一章所有习题 详细总结本章要点 给你的结对学习搭档讲解你的总结并获取反馈 教材学习内容总结 8.1 异常 异常就是控制流中的突变,用来响应处理器状态中的某些变化 8.1.1 异常处理 系统中可能的每种类型的异常都分配了一个唯一的非负整数的异常号. 处理器:被零除.缺页.存储器访问违例.断点以及算术溢出 操作系统:系统调用和来自外部I/O设备的信号 8.1.2异

2017-2018-1 20155315 《信息安全系统设计基础》第13周学习总结

2017-2018-1 20155315 <信息安全系统设计基础>第13周学习总结 教材学习内容总结 本周老师让我们学习的是自己觉得最终要的一章,我学习的是第十章.在我看来,不论是什么产品,都存在设计端与使用端,更确切的说,正因为有使用端,才需要设计端.因此,使用端的使用感受最为重要,而作为一个对外的平台与程序,I/O系统是基础和核心,也因此我选择系统级I/O进行深入学习. 主要知识点: 输入是从I/O设备复制数据到主存 输出是从主存复制数据到I/O设备 UnixI/O 每个unix文件都是一

2017-2018-1 20155308 《信息安全系统设计基础》第13周学习总结

2017-2018-1 20155308 <信息安全系统设计基础>第13周学习总结 一.教材学习内容详细总结 存储器系统是一个具有不同容量.成本和访问时间的存储设备的结构. 存储技术 随机访问存储器 随机访问存储器分为两类:静态RAM(SRAM)和动态RAM(DRAM). 静态RAM: SRAM将每个位存储在一个双稳态的存储器单元里,每个单元是用一个六晶体管电路来实现的. 动态RAM: 每一位的存储是对一个电容的充电,电容约为30×10-15F:对干扰非常敏感,当电容的电压被扰乱之后,它就永远