`
wsql
  • 浏览: 11788412 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

两个例子分析 9章课后选择7题

 
阅读更多

7.当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中(A)

A. 都是虚函数

B. 只有被重新说明时才是虚函数

C. 只有被重新说明virtual时才是虚函数

D. 都不是虚函数

例一:

#include<iostream.h>
const double pl=3.14;
class Shape //定义一个图形类
{
public:
virtual double area()=0; //声明一个求面积的纯虚函数
virtual void shapename()=0; //声明一个输出图形名称的纯虚函数
};
class Circle:public Shape
{
private:
double r;
public:
Circle(){}
Circle(double rr){r=rr;}
virtual double area(){ return pl*r*r;} //在派生类中实现求面积的功能
virtual void shapename(){cout<<"this is a Circle.";} //在派生类中输出图形的名称
};
class Rectangle:public Shape
{
private:
double x,y;
public:
Rectangle(){}
Rectangle(double xx,double yy){x=xx;y=yy;}
virtual double area(){ return x*y;} //在派生类中实现求面积的功能
virtual void shapename(){cout<<"this is a Rectangle.";} //在派生类中输出图形的名称

};
void main()
{
Shape *p;
Circle c(2);
Rectangle r(3,4);
p=&c;
p->shapename();
cout<<"area="<<p->area()<<endl;
p=&r;
p->shapename();
cout<<"area="<<p->area()<<endl;
}

程序结果:this is a Circle.area=12.56

this is a rectangle.area=12

例二:

#include<iostream.h>
const double pl=3.14;
class Shape

{
public:
virtual double area()=0;

virtual void shapename()=0;

};
class Circle:public Shape
{
private:
double r;
public:
Circle(){}
Circle(double rr){r=rr;}
double area(){ return pl*r*r;}

void shapename(){cout<<"this is a Circle.";}

};
class Rectangle:public Shape
{
private:
double x,y;
public:
Rectangle(){}
Rectangle(double xx,double yy){x=xx;y=yy;}
double area(){ return x*y;}

void shapename(){cout<<"this is a Rectangle.";}

};
void main()
{
Shape *p;
Circle c(2);
Rectangle r(3,4);
p=&c;
p->shapename();
cout<<"area="<<p->area()<<endl;
p=&r;
p->shapename();
cout<<"area="<<p->area()<<endl;
}

程序结果:this is a Circle.area=12.56

this is a rectangle.area=12

注释:

定义派生类中的虚函数时,可以省略关键字virtual,但提倡不省略.

当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中都是虚函数.

分享到:
评论

相关推荐

    软件工程第二次课后习题.zip

    为每种类型的模块内聚举一个例子。 (2).为每种类型的模块耦合举一个具体的例子。 第四题、 考虑下述的自动化图书馆流通系统: (1).试用有穷状态机说明上述的图书流通系统。 (2).试用Petri网说明第四题所述图书馆...

    北航2系考研921.922专业课《信号与系统》课后答案

    本文档主要为广大考研复习的同学提供最权威的信息指导,针对北京航空航天大学2系考研两个专业课921,922《信号与系统》课后答案,因为往年有过直接从里面拿原题的例子

    面向对象分析与设计

    《面向对象分析与设计(第3版)》通过大量例子说明了基本概念,解释了方法,并展示了在不同领域的成功应用。全书分为理论和应用两部分。理论部分深刻剖析了面向对象分析与设计(OOAD)的概念和方法。应用部分连续列出了5...

    LINUX操作系统(电子教案,参考答案)

    本章主要介绍在Linux上比较常用的两个proxy服务器软件的配置。 本书最后还附有参考答案,以供读者对照课后习题进行练习。 四、本书适用对象 本书适合用于大专院校、电脑培训班等作为Linux或UNIX操作系统课程的教材,...

    数据挖掘导论 中文完整版

    116 4.6.1 估计准确度的置信区间 116 4.6.2 比较两个模型的性能 117 4.6.3 比较两种分类法的性能 118 文献注释 118 参考文献 120 习题 122第5章 分类:其他技术 127 5.1 基于规则的分类器 127 5.1.1 基于规则的分类...

    《软件工程导论》张海潘_第五版_清华_课后答案

    B.2.2 两个工作模式351 B.2.3 数据元素352 B.2.4 过程353 B.3 概要设计结果353 B.4 详细设计356 B.4.1 数据元素356 B.4.2 控制数据元素357 B.4.3 编辑过程357 B.4.4 输入模式的过程359 B.4.5 编辑模式的过程360 B.5 ...

    计算机图形学王汝传1-4章课后作业参考答案.doc

    举3个例子说明计算机图形学的应用. 答: 事务管理中的交互绘图 应用图形学最多的领域之一是绘制事务管理中的各种图形.通过从简明的形式呈现出数据 的模型和趋势以增加对复杂现象的理解,并促使决策的制定. 地理信息...

    TCP/IP详解(卷一)

    4.2 一个例子 38 4.3 ARP高速缓存 40 4.4 ARP的分组格式 40 4.5 ARP举例 41 4.5.1 一般的例子 41 4.5.2 对不存在主机的ARP请求 42 4.5.3 ARP高速缓存超时设置 43 4.6 ARP代理 43 4.7 免费ARP 45 4.8 arp命令 45 4.9 ...

    软件形式规格说明语言-Z

    第2章 1. 什么是命题?(都是简单的问题,命题是可分辨真假的陈述句) 什么是命题公式?(用常用的5个连接词讲命题连接起来,组合起来。简单的来说就是这样,书上有现成的答案。) 什么是命题演算?(用来计算...

    算法导论(part2)

    ·动态规划的两个应用(第15.1节和第15.5节)。 ·利用随机化和线性规划技术的近似算法(第35.4节)。 ·为了使更多的算法可以更早地在书中出现,第1版中有关数学背景知识的三章内容从第一部分移到了附录中,即现在...

    MATLAB实用教程

    本书从快速入门和实用性两个方面,对MATLAB7.0进行了详细的介绍,并列举了大量实用的例子。全书共分为12章,第1章介绍MATLAB的安装及系统功能;第2~3章介绍MATLAB基于命令窗口的应用,讲述了MATLAB的基础知识和...

    计算机组成原理第六次作业答案.doc

    1.运算器采用单组内总线、分立寄存器结构和单组内总线、集成寄存器结构时,其输入端设置的部件名称是什么? 2.简述同步控制方式和异步控制方式的定义、特点、优缺点和应用场合,并...21.某主机连接两个输入设备,两

    模式分类PatternClassificationSecondEdition中译本-模式分类.part1.rar

    1.2一个例子 1.3模式识别系统 1.4设计循环 1.5学习和适应 1.6本章小结 全书各章概要 文献和历史评述 参考文献 ------------------------- 第二章贝叶斯决策论 2.1引言 2.2贝叶斯决策论连续特征 2.3最小...

    java程序设计与应用开发源码

    2. 每章目录下又包含两个子目录: \code 其中存放书中该章的例子代码 \answercode 其中存放该章课后习题答案的代码 3. 为了方便读者,需要用到JDBC驱动的章节,已经在相应的目录下包含了JDBC驱动程序。

    vc++ 开发实例源码包

    这个例子就是查询任何可执行文件的版本信息并且 C++builder 和 VC 都通用,只需要把 AnsiString 替换成 CString 就行了。 gh0st v3.6 源码 - 可下断点调试! 如题。详细见源码。 GMem 内存管理单元源码。GMem.cpp...

    数据结构课后答案.doc

    1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储...2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。 3.简述逻辑结构的四种基本关系并画出它们的关系图。

    模式分类PatternClassificationSecondEdition中译本-模式分类.part2.rar

    1.2一个例子 1.3模式识别系统 1.4设计循环 1.5学习和适应 1.6本章小结 全书各章概要 文献和历史评述 参考文献 ------------------------- 第二章贝叶斯决策论 2.1引言 2.2贝叶斯决策论连续特征 2.3最小...

Global site tag (gtag.js) - Google Analytics