第7 类与对象部分习题 - noanswer
JAVA类与对象及数组习题及答案

V JA VA A 类和对象及数组习题类和对象及数组习题一、选择题一、选择题(1)下列构造方法的调用方式中,正确的是()下列构造方法的调用方式中,正确的是(D )--原因:在通过new 实例化一个类对象时系统会自动调用该类相应的构造方法。
A .按照一般方法调用.按照一般方法调用B .由用户直接调用.由用户直接调用C .只能通过new 自动调用自动调用D .被系统调用.被系统调用(2)在Java 中,能实现多重继承效果的方式是(中,能实现多重继承效果的方式是(C )--原因:一个类可以同时实现多个接口。
Java 接口反映了对象较高层次的抽象,还弥补了Java 只支持单继承的不足,可用它来完成多继承的一些功能。
A .内部类.内部类B .适配器.适配器C .接口.接口D .同步.同步(3)int 型public 成员变量MAX_LENGTH ,该值保持为常数100,则定义这个变量的语句是( D )—原因:java 中定义常量用关键字final 来定义。
A .public int MAX_LENGTH=100B .final int MAX_LENGTH=100C .public const int MAX_LENGTH=100D .public final int MAX_LENGTH=100 (4)下列叙述中,正确的是(A )—原因:Java 严格区分大小写,所以变量number 与Number 不相同;Java 中的注释方式除了“//”行注释之外还有段注释“/*-------*/”和文档注释/**-------*/。
Java 源文件中的public 类只能有一个。
A. 声明变量时必须指定一个类型B. Java 认为变量number 与Number 相同相同C. Java 中唯一的注释方式是"//"D. 源文件中public 类可以有0或多个或多个(5)下列叙述中,错误的是( D)—原因:子类继承父类,并且可以有自己的成员变量和成员方法。
类与对象习题

类与对象习题类与对象选择题5.若有以下说明,在类外使用对象objX成员的正确语句是( c )。
class X{ int a;void fun1();public:void fun2();};X objX ;(a) objX.a=0; (b) objX.fun1(); (c) objX.fun2(); (d) X::fun1(); 6.若有以下说明,对n的正确访问语句是( b )。
class Y{ //…… ;public:static int n;};int Y::n;Y objY;(a) n=1; (b) Y::n=1; (c) objY::n=1; (d) Y->n9.若有以下类T说明,函数fFriend的错误定义是( c )。
class T{ int i;friend void fFriend(T&,int) ;};(a) void fFriend(T &objT,int k) { objT.i = k; }(b) void fFriend(T &objT,int k) { k = objT.i; }(c) void T::fFriend(T &objT,int k) { k += objT.i; }(d) void fFriend(T &objT,int k) { objT.i += k; }10.在类定义的外部,可以被访问的成员有( c )。
(a) 所有类成员(b) private或protected的类成员(c) public的类成员(d) public或private的类成员12.说明一个类的对象时,系统自动调用( b );撤消对象时,系统自动调用( c )。
1(a) 成员函数(b) 构造函数(c) 析构函数(d) 友员函数13.下面对构造函数的不正确描述是( b )。
(a) 系统提供默认的构造函数(b) 构造函数可以有参数,所以也可以有返回值(c) 构造函数可以重载(d) 构造函数可以设置默认参数14.下面对析构函数的正确描述是( c )。
C++习题七课后答案

习题7解答注:如有错误,请谅解!1、填空题(1)私有成员(2)构造函数(3)private(4)公有成员函数的集合(5)公有成员(6)友元(7)类的静态成员(8)this(9)new(10)非const 成员函数(11)构造(12)const char * const(13)AB(AB& X)(14)—>(15)生存期结束程序运行结束时(16)析构函数2、选择题(1)A (2)B (3)C(4)B(5)B(6)B(7)B(8)A(9)A(10)B(11)C(12)B(13)C(14)D(15)A(16)D(17)D(18)A(19)B(20)D(21)B(22)B(23)C(24)D(25)A(26)B(27)A(28)B(29)C(30)D(31)B(32)B (33)D3、简答题(1)类和数据类型有何关联?答:类相当于一种包含函数的自定义数据类型,它不占内存空间,是一个抽象的“虚”体,使用已定义的类建立对象就像用数据类型定义变量一样。
对象建立后,对象占据内存,变成了一个“实”体。
类与对象的关系就像数据类型与变量的关系一样。
其实,一个变量就是一个简单的不含成员函数的数据对象。
(2)类和对象的内存分配关系如何?答:为节省内存,编译器在创建对象时,只为各对象分配用于保存各对象数据成员初始化的值,并不为各对象的成员函数分配单独的内存空间,而是共享类的成员函数定义,即类中成员函数的定义为该类的所有对象所共享,这是C++编译器创建对象的一种方法,在实际应用中,我们仍要将对象理解为由数据成员和函数成员两部分组成。
(3)什么是浅拷贝?什么是深拷贝?二者有何异同?答:构造函数用于建立对象时给对象赋初值以初始化新建立的对象。
如果有一个现存的对象,在建立新对象时希望利用现存对象作为新对象的初值,即用一个已存在的对象去初始化一个新建立的对象。
C++提供的拷贝构造函数用于在建立新对象时将已存在对象的数据成员值复制给新对象,以初始化新对象。
第7章 类与对象思考与练习题答案

第7章类与对象1、什么叫面向对象的程序设计语言?什么叫类?什么叫对象?什么叫消息?答:在程序设计语言中,面向对象是指采用抽象、封装、继承、多态等程序设计的方法。
因此,具有抽象、封装、继承、多态等特性的编程语言称为面向对象的程序设计语言。
类实际上是一种抽象的数据类型,它将完成某特定功能所用到的数据和对数据的操作(即函数)封装在一起。
对象是指具有某些属性和功能的单个个体。
消息是对象之间相互请求或相互协作的途径,是要求某个对象执行其中某个功能操作的规格说明。
2、结构化程序设计方法存在什么问题?答:结构化程序设计方法主要存在以下问题:1)软件重用性差:重用性是指同一软件不经修改或稍加修改就可多次重复使用的性质。
软件重用性是软件工程追求的目标之一。
2)软件可维护性差:软件工程强调软件的可维护性,强调文档资料的重要性,规定最终的软件产品应该由完整、一致的配置成分组成。
在软件开发过程中,始终强调软件的可读性、可修改性和可测试性是软件的重要的质量指标。
实践证明,用传统方法开发出来的软件,维护时其费用和成本仍然很高,其原因是可修改性差,维护困难,导致可维护性差。
3)开发出的软件不能满足用户需要:用传统的结构化方法开发大型软件系统涉及各种不同领域的知识,在开发需求模糊或需求动态变化的系统时,所开发出的软件系统往往不能真正满足用户的需要。
3、什么叫抽象?什么叫分类?答:从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征,就叫作抽象。
抽象是形成概念的必须手段。
分类就是把具有相同属性和服务的对象划分为一类,用类作为这些对象的抽象描述。
4、请简述结构体、联合体和类三种类类型的异同点。
答:三种类类型的异同点见下列表格:struct结构体类型和class类类型都可以封装数据和操作,具有派生性、隐藏性和多态性。
而联合体不具有派生性,但具有隐藏性和多态性。
5、什么叫根类?答:根类是没有从其它类派生而创建的类类型。
实际上,根据class类类型定义的一般形式,[:<基类型列表>]是一个可缺省的项;如缺省将定义一个根类。
c++面向对象课后答案第7章

1.概念填空题C++最重要的特性之一就是代码重用,为了实现代码重用,代码必须具有通用性°通用代码需要不受数据类型的影响,并且可以自动适应数据类型的变化。
这种程序设计类型称为参数化程序设计。
模板是C++支持参数化程序设计的工具,通过它可以实现参数化_务态性性。
函数模板的立义形式是template <模板参数表〉返回类型函数轻(形式参数表){-}»其中,<模板参数表〉中参数可以有 _个,用逗号分开。
模板参数主要是模板类型参数c它代表一种类型,由关键字typename 或class后加一个标识符构成,标识符代表一个潜在的内苣或用户左义的类型参数。
类型参数由可以是任意合法标识符。
C++规定参数名必须在函数泄义中至少出现一次。
编译器通过如下匹配规则确泄调用那一个函数:首先,寻找最符合函数名和参数类型的一般函数,若找到则调用该函数:否则寻找一个函数模板,将英实例化成一个模板函生,看是否匹配,如果匹配,就调用该模板函数:再则,通过一类型转换规则进行参数的匹配。
如果还没有找到匹配的函数则调用错误。
如果有多于一个函数匹配,则调用产生一•义性,也将产生错误。
类模板使用户可以为类声明一种模式,使得类中的某些数据成员、某些成员函数的参数、某些成员函数的返回值能取任童类型(包括系统预定类型和用户自怎义的类型)。
类是对一组对象的公共性质的抽象,而类模板则是对不同类的数据类型的抽象,因此类模板是属于更髙层次的抽象。
由于类模板需要一种或多种类型参数,所以类模板也常常称为参数化类。
2.简答题简述函数模板生成函数的过程。
简述类模板生成对象的过程。
简述函数模板与模板函数、类模板与模板类的区别。
3.选择题关于函数模板,描述错误的是(A )。
A.函数模板必须由程序员实例化为可执行的函数模板B.函数模板的实例化由编译器实现C.一个类定义中,只要有一个函数模板,则这个类是类模板D.类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化下列的模板说明中,正确的是(D )。
Python语言程序设计(美-梁勇)第7章习题解答

第7章对象和类7.1描述对象和它的类定义之间的关系。
答:类定义对象的特征和行为。
一个Python类使用变量存储数据域,定义方法来完成动作。
类就是一份契约(有时也称之为模板或蓝本),它定义对象的数据域和方法。
对象是类的一个实例,你可以创建一个类的多个对象。
创建类的一个实例的过程被称为实例化,术语对象和实例经常是可互换的,对象就是实例。
7.2如何定义一个类?答:Python使用下面的语法定义一个类:Class classname:InitializerMethods类名通常是在关键词class之后,其后紧随一个冒号(:),初始化程序总是被命名为__init__。
7.3如何创建一个对象?答:一旦定义了一个类,你就可以使用构造方法由类来创建对象,其语法规则为:类名(参数)。
构造方法完成两个任务,(1)在内存中为类创建一个对象;(2)调用__init__初始化对象。
7.4初始化方法的名字是什么?答:__init__(self)7.5习惯上,初始化方法的第一个参数被命名为self,self的作用是什么?答:self是指向对象本身的参数。
7.6构建一个对象的语法是什么?Python在创建一个对象时做了些什么?答:构建对象的语法:类名(参数)。
构造方法完成两个任务,(1)在内存中为类创建一个对象;(2)调用__init__初始化对象。
7.7一个初始化程序和一个方法的区别是什么?答:初始化是一个特殊的方法,它是在创建和初始化这个新对象时被调用的。
7.8对象成员访问运算符是干什么的?答:是圆点运算符(.)。
7.9运行下面的程序会出现什么问题?如何修正它?Class A:Def __init__(self, i):Self.i = iDef main():a = A()Print a.i答:需要传递一个实参来调用初始化函数。
7.10下面的程序有什么错误?答:a、没有初始化程序b、应该是self.radius = 37.11给出下面程序的输出结果:答:count = 100 times = 07.12给出下面程序的输出结果:答:count = 0 n = 17.13运行下面的程序时会出现什么问题?如何修改它?答:i为私有域,不能在类外被查看。
第七类单招试题推荐及答案

第七类单招试题推荐及答案一、选择题(每题2分,共10分)1. 下列哪个选项是正确的IP地址?A. 192.168.256.1B. 10.0.0.1C. 172.16.255.255D. 12.34.56.789答案:B2. 在计算机系统中,二进制数“1010”转换为十进制数是多少?A. 10B. 8C. 6D. 12答案:C3. 下列哪个选项不是数据库系统的特点?A. 数据共享B. 数据独立性C. 数据安全性D. 数据冗余答案:D4. 在HTML中,用于插入图片的标签是:A. <img>B. <image>C. <picture>D. <photo>答案:A5. 下列哪个命令用于在Linux系统中查看当前目录下的文件和文件夹?A. lsB. listC. dirD. show答案:A二、填空题(每题3分,共15分)1. 在计算机网络中,FTP代表的意思是文件传输协议。
2. 数据库管理系统(DBMS)的主要功能包括数据的存储、检索和维护。
3. 在C语言中,用于计算两个整数和的运算符是 + 。
4. 在Java中,一个类可以继承另一个类的属性和方法是面向对象编程的封装、继承和多态特性之一。
5. 在Excel中,要计算一列数据的总和,可以使用函数 SUM 。
三、简答题(每题10分,共20分)1. 请简述软件开发生命周期(SDLC)的主要阶段。
答案:软件开发生命周期的主要阶段包括:- 需求分析- 设计- 实现(编码)- 测试- 部署- 维护2. 什么是云计算,它有哪些主要服务类型?答案:云计算是一种通过互联网提供计算资源和服务的模式。
它允许用户按需访问和使用计算资源,而无需直接管理底层的硬件。
云计算的主要服务类型包括:- 基础设施即服务(IaaS)- 平台即服务(PaaS)- 软件即服务(SaaS)四、计算题(每题15分,共30分)1. 假设有一个算法的时间复杂度为O(n^2),请计算当n=1000时,该算法需要执行的基本操作次数。
七类考试题库及答案解析

七类考试题库及答案解析1. 单选题题目:下列哪个选项是正确的?A. 地球是平的B. 地球是圆的C. 地球是三角形D. 地球是正方形答案:B解析:地球的形状是一个接近于球形的不规则球体,因此选项B是正确的。
2. 多选题题目:以下哪些是计算机编程语言?A. 英语B. 汉语C. PythonD. Java答案:C, D解析:英语和汉语是自然语言,不是计算机编程语言。
Python和Java是广泛使用的编程语言。
3. 判断题题目:水在标准大气压下,100摄氏度时会沸腾。
答案:正确解析:在标准大气压下,水的沸点是100摄氏度,因此当水达到这个温度时会沸腾。
4. 填空题题目:请填写下列句子中缺失的单词。
句子:在数学中,一个数的平方根是另一个数,这个数的平方等于______。
答案:原数解析:平方根的定义是一个数的平方等于原数。
5. 简答题题目:请简述牛顿第三定律。
答案:牛顿第三定律,也称为作用与反作用定律,指出对于两个相互作用的物体,它们彼此施加的力大小相等、方向相反。
解析:这个定律说明了力的作用是相互的,一个物体对另一个物体施加力的同时,也受到另一个物体的反作用力。
6. 计算题题目:如果一个物体从静止开始,以加速度a=2m/s²加速运动,求5秒后的速度。
答案:20m/s解析:根据公式v = u + at,其中v是最终速度,u是初始速度(这里是0),a是加速度,t是时间。
代入数值计算得v = 0 + 2*5= 10m/s。
但是题目中给出的答案是20m/s,这里存在一个错误。
7. 论述题题目:论述互联网对现代社会的影响。
答案:互联网极大地促进了信息的传播和交流,改变了人们的工作、学习和生活方式。
它使得远程工作、在线教育、电子商务等成为可能,同时也带来了网络安全、隐私保护等新的挑战。
解析:互联网的普及使得信息传播更加迅速和广泛,促进了全球化的发展。
但同时,它也带来了一系列社会问题,需要我们共同努力去解决。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7 类与对象部分习题- noanswer第四章类与对象习题一.基本概念与基础知识自测题4.1 填空题5.1.1 引入类定义的关键字是(1)。
类的成员函数通常指定为(2),类的数据成员通常指定为(3)。
指定为(4)的类成员可以在类对象所在域中的任何位置访问它们。
通常用类的(5)成员表示类的属性,用类的(6)成员表示类的操作。
答案:(1)class(2)公有的public(3)私有的private(4)公有的public(5)数据(6)函数4.1.2 类的访问限定符包括(1)、(2)和(3)。
私有数据通常由(4)函数来访问(读和写)。
这些函数统称为(5)。
答案:(1)public(公有的)(2)private(私有的)(3)protected(保护的)(4)公有的成员函数(5)类的接口4.1.3 通常在逻辑上,同一类的每个对象都有(1)代码区,用以存储成员函数。
而在物理上通常只有(2)代码区。
只有在(3)定义,并(4)的函数和加了关键字(5)的函数例外。
答案:(1)独立的(2)共用的(3)在类说明中(4)不包括循环等复杂结构(5)inline4.1.4 C++中支持三种域:(1)、(2)、(3)。
函数域被包括在(4)中,全局域被包括在(5)中。
using指示符以关键字using开头,后面是关键字(6),最后是(7)。
这样表示以后在该名字空间中所有成员都(8)。
如不使用using指示符则在使用时要加::,称为(9)运算符。
答案:(1)局部域(local scope)(2)名字空间域(namespace scope)(3)类域(class scope)(4)局部域(5)名字空间域(6)namespace(7)名字空间名(8)可以直接被使用(9)域4.1.5 引用通常用作函数的(1)和(2)。
对数组只能引用(3)不能引用(4)。
答案:(1)参数(2)返回值(3)数组元素(4)数组名本身4.1.6 构造函数的任务是(1)。
构造函数无(2)。
类中可以有(3)个构造函数,它们由(4)区分。
如果类说明中没有给出构造函数,则C++编译器会(5)。
拷贝构造函数的参数是(6),当程序没有给出复制构造函数时,系统会自动提供(7)支持,这样的复制构造函数中每个类成员(8)。
答案:(1)初始化数据成员(2)函数返回类型说明(3)多(4)不同的参数表(5)自动给出一个默认的构造函数(6)同一类对象的引用(7)默认的的复制构造函,称为默认的按成员语义支持。
(8)被依次复制4.1.7 一个类有(1)个析构函数。
(2)时,系统会自动调用析构函数。
答案:(1)一(2)对象注销时4.1.8 运算符重载时,其函数名由(1)构成。
成员函数重载双目运算符时,左操作数是(2),右操作数是(3)。
答案:(1)关键字operator和该运算符(2)对象(3)该函数的参数4.1.9 面向过程的程序设计中程序模型描述为(1),面向对象程序设计的程序模型可描述为(2)。
答案:(1)“程序=算法+数据结构”。
其数据与数据处理是分离的。
(2)程序=(对象+对象+……+对象)+消息;对象=(算法+数据结构)。
面向对象设计将数据和对数据的操作方法放在一起,形成一个相对独立的整体——对象(Object),并通过简单的接口与外部联系。
对象之间通过消息(Message)进行通讯。
4.2 简答题4.2.1 简单解释什么是面向对象程序设计的封装性。
答:对象是一个封装体,在其中封装了该对象所具有的属性和操作。
对象作为独立的基本单元,实现了将数据和数据处理相结合的思想。
此外,封装特性还体现在可以限制对象中数据和操作的访问权限,从而将属性“隐藏”在对象内部,对外只呈现一定的外部特性和功能。
封装性增加了对象的独立性,C++通过建立数据类型——类,来支持封装和数据隐藏。
一个定义完好的类一旦建立,就可看成完全的封装体,作为一个整体单元使用,用户不需要知道这个类是如何工作的,而只需要知道如何使用就行。
另一方面,封装增加了数据的可靠性,保护类中的数据不被类以外的程序随意使用。
这两个优点十分有利于程序的调试和维护。
4.2.3 为什么说类与对象的概念是客观世界的反映?答:客观世界的事物都具有某些属性和行为(或操作),具有相同属性和行为的事物可以归属于一类,用分类的方法可以提高认识事物的效率。
C++中定义的类则是通过抽象的方法将某一类事物共有的静态特征(属性)和动态特征(行为)概括出来并加以描述,而对象是类的具体实现,所以说类与对象的概念是客观世界的反映。
4.2.4 什么叫类域?为什么说类域是抽象的?答:类域是类体所包括的范围。
每个类定义都引入了一个独立的类域,在类域中说明的标识符仅在该类的类域中有效。
由于类只是一个说明,看上去有数据,有函数,有类型定义,但是它并非实体,不分配内存,当然也不能运行。
所以说类域是抽象的。
4.2.5 引用作为函数参数时为什么能实现两个实参之间的数据交换?为什么对应实参不能为引用?为什么返回值为引用的函数可以作为左值?答:引用变量是其关联变量的别名,二者在内存中占据同一个存储单元。
在一个以引用作为参数的函数中,交换两个参数的值,实际上就是交换两个实参的值。
如果函数的参数是引用,调用时需要取得实参的地址,而实参如果已经是一个地址,再进行引用将产生错误,故对应实参不能为引用。
函数返回引用实际是指明(返回)了相应的关联变量,所以声明返回值为引用的函数实际上是将关联变量作为左值参与运算。
4.2.6 什么是缺省的构造函数?缺省的构造函数最多可以有多少个?答:如果在类定义中不显式地定义构造函数,C++编译器会自动产生一个缺省的构造函数,不过该函数不做具体的初始化工作。
只要构造函数是无参的或者只要各参数均有缺省值的,C++编译器都认为是缺省的构造函数。
缺省的构造函数只能有一个。
4.2.7 拷贝构造函数用于哪三个方面?答:(1)用类的一个对象去初始化该类的另一个对象时使用。
(2)当函数的形参是类的对象,调用函数时,进行形参与实参结合时使用。
(3)当函数的返回值是类对象,函数执行结束返回调用者时使用。
4.2.8 写出含有对象成员的类的构造函数的格式,并做简单说明。
答:C++中对含对象成员的类对象的构造函数有固定的格式:类名::构造函数名(参数总表):对象成员1(参数名表1),对象成员2(参数名表2),……对象成员n(参数名表n){……}冒号后用逗号隔开的是要初始化的对象成员,附在后面的参数名表1,…,参数名表n依次为调用相应对象成员所属的构造函数时的实参表。
这些表中的参数通常来自冒号前的参数总表,但没有类型名。
4.2.9 所有类对象未重载的赋值运算符“=”是怎样工作的?为什么它可以进行连续赋值?答:对所有的类对象,未重载的赋值运算符“ =”称作缺省的按成员拷贝赋值操作符,同类对象之间可以用“=”直接拷贝。
因为缺省的赋值操作返回一个对象的引用,所以它可以进行连续赋值。
4.2.10 为什么在友元函数的函数体内访问对象成员时,必须用对象名加运算符“.”再加对象成员名?答:友元函数不是类的成员函数,在函数体中访问对象的成员,必须用对象名加运算符“.”加对象成员名。
这一点和一般函数一样。
4.2.12 类的静态数据成员与函数中的静态成员有何异同?答:类的静态成员为其所有对象共享,不管有多少对象,静态成员只有一份存于公用内存中,为该类所有对象公用。
函数中的静态变量也位于公用内存中,不随函数调用而重新分配,所以总是保留上次进入并执行该函数后留下的信息。
4.2.13 C++中结构、联合与类三者间有何异同?答:在C++中结构(structure)与类几乎是完全一样的类型,差别仅仅在于缺省情况下结构的成员为公有的。
联合(union)是C++的导出数据类型,在语法与功能上类似于结构,二者的区别是:结构变量的各成员同时被分配了各自独立的内存区,而联合变量的各个成员的存储开始地址都相同,所以在任一时刻联合变量只能存储一个成员。
4.2.14 对象的第一特征是封装,那么由对象组成的面向对象的程序怎样建立各对象之间的有效联系?面向对象程序的组织与面向过程有什么不同?答:因为对象的操作主要用来响应外来消息并为其他对象提供服务,所以面向对象的程序利用消息传递机制来建立各对象之间的有效联系,协调各对象的运行。
一个对象可以向其他对象发送消息以请求服务,也可以响应其他对象传来的消息,完成自身固有的某些操作,从而服务于其他对象。
面向过程的程序是模块化的,模块的组织具有分层结构特点,层与层之间是调用关系。
面向对象程序是由一个个封装的对象组成,而对象是由紧密结合在一起的算法和数据结构组成。
对象之间是相互请求和相互协作的关系。
4.2.16 类的成员函数在什么情况下应该定义为私有的?这样做的目的是什么?答:除接口函数和创建本类对象的构造函数和撤消该对象的析构函数外。
其余成员函数应该定义为私有的,这是开发类时故意对外隐蔽起来的操作,而这些往往是最复杂最关键的部分。
类中故意的隐藏也为以后的升级扩展留下了余地,只要接口不变,内部再变,也不必修改原来的程序,就象MFC(微软基础类)升级后,由MFC底层类所编的程序完全不必修改,自动升级。
二.编程与综合练习题4.3 构造一个日期时间类(Timedate),数据成员包括年、月、日和时、分、秒,函数成员包括设置日期时间和输出时间,其中年、月请用枚举类型,并完成测试。
(包括用成员函数和用普通函数)4.4 设计并测试一个矩形类(Rectangle),属性为矩形的左下与右上角的坐标,矩形水平放置。
操作为计算矩形周长与面积。
测试包括用成员函数和普通函数。
4.5 定义一个圆类(Circle),属性为半径(radius)、圆周长和面积,操作为输入半径并计算周长、面积,输出半径、周长和面积。
要求定义构造函数(以半径为参数,缺省值为0,周长和面积在构造函数中生成)和拷贝构造函数。
4.6 设计一个学校在册人员类(Person)。
数据成员包括:身份证号(IdPerson),姓名(Name),性别(Sex),生日(Birthday)和家庭住址(HomeAddress)。
成员函数包括人员信息的录入和显示。
还包括构造函数与拷贝构造函数。
设计一个合适的初始值。
4.7 对上面4道题中的类对象的数据,由友元函数来进行访问。
并对比友元函数、成员函数和普通函数使用上的不同。
4.8 为复数类(Complex)增加重载的运算符-、-=、*=和/=。
设++为实部和虚部各自增一,亦请重载前置与后置++运算符。
分别使用成员函数和友元函数各做一遍。
并测试。
4.10 内置数据类型可以进行类型强制转换,类也可以进行同样的转换,这是通过定义类型转换函数实现的。
它只能是类的成员函数,不能是友元函数。