C++习题答案-3C++习题答案-3.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C习题答案-3C习题答案-3

第三章[3_1]类声明的一般格式是什么? 答:类声明的一般格式如下: class 类名 { public: 公有数据成员; 公有成员函数; protected: 保护数据成员; 保护成员函数; private: 私有数据成员; 私有成员函数; };其中:class是声明类的关键字;类名是要声明的类的名字;后面的花括号表示出类声明的范围;最后的分号表示类声明结束。[3_2]构造函数和析构函数的主要作用是什么?它们各有什么特性? 答:构造函数是一种特殊的成员函数,它主要用于为对象分配空间,进行初始化。构造函数具有一些特殊的性质: (1)构造函数的名字必须与类名相同 (2)构造函数可以有任意类型的参数,但不能指定返回类型。它有隐含的返回值,该值在系统内部使用。 (3)构造函数是特殊的成员函数,函数体可写在类体内,也可写在类体外。 (4)构造函数可以重载,即一个类中可以定义多个参数个数或参数类型不同的构造函数。 (5)构造函数被声明为公有函数,但它不能象其它成员函数那样被显示地调用,它是在定义对象的同时被调用的。 析构函数也是一种特殊的成员函数。它执行与构造函数相反的操作,通常用于撤消对象时的一些清理任务,如释放分配给对象的内存空间等。析构函数有以下一些特点: (1)析构函数与构造函数名字相同,但它前面必须加一个波浪号(~) (2)析构函数没有参数,不能指定返回类型,而且不能重载。因此在一个类中只能有一个析构函数。 (3)当撤消对象时,编译系统会自动地调用析构函数。[3_3]什么是对象数组 答:所谓对象数组是指每一数组元素都是对象的数组,也就是说,若一个类有若干个对象,我们把这一系列的对象用一个数组来存放。对象数组的元素是对象,不仅具有数据成员,而且还有函数成员。[3_4]什么是this指针?它的主要作用是什么? 答:C++为成员函数提供了一个名字为this的指针,这个指针称为自引用指针。每当创建一个对象时,系统就把this指针初始化为指向该对象。每当调用一个成员函数时,系统就自动把this指针作为一个隐含的参数传给该函数。不同的对象调用同一个成员函数时,C++编译器将根据成员函数的this指针所指向的对象来确定应该引用哪一个对象的数据成员。[3_5]友元函数有什么作用? 答:友元函数不是当前类的成员函数,而是独立于当前类的外部函数,但它可以访问该类的所有对象的成员,包括私有成员和公有成员。通过友元函数可以在不放弃私有数据安全的情况下,使得类外部的函数能够访问类中的私有成员。 当一个函数需要访问多个类时,友元函数非常有用,普通的成员函数只能访问其所属的类,但是多个类的友元函数能够访问相应的所有类的数据。此外,在某些情况,例如运算符被重载时,需要用到友元函数。[3_6]假设在程序中已经声明了类point,并建立了其对象p1和p2。请回答以下几个语句有什么区别? 答:(1)point p1,p2; 用带缺省参数的构造函数或不带参数的构造函数,定义了point类的2个对象p1和p2。 (2)point p2=p1; 依据已存在的对象p1,用赋值形式调用拷贝构造函数,创建对象p2。 (3)point p2(p1); 依据已存在的对象p1,用显示调用拷贝构造函数,创建对象p2 (4)p2=p1; 对象赋值语句,将对象p1数据成员的值拷贝到对象p2中。 说明:C++中对构造函数有一些规定:不能带返回值;可以不带参数;也可以缺省定义;但构造函数的名字与类名必须完全相同。说明:C++中没有限定private、public、protected的书写次序。但是,不能在类的声明中给数据成员赋初值,数据成员的数据类型也不能是register(寄存器类型),没有用private、public、protected定义的数据成员是私有成员。说明:C++中对析构函数也有一些规定:没有参数;不能重载;析构函数的名字是在类名前加“~”;析构函数不能指定返回类型。说明:构造函数的工作是在创建对象时执行的。说明:C++中规定在建立对象前,就可以为静态数据成员赋值。同时规定在静态成员函数中不能使用this指针。静态成员函数在类外定义时,不需要用static前缀。静态成员函数即可以在类内定义也可以在类外定义 说明:在C++中友元函数是独立于当前类的外部函数,一个友元函数可以同时定义为两个类的友元函数。友元函数即可以在类的内部也可以在类的外部定义,而在外部定义友元函数时,不必加关键字friend说明:由于友元函数可以直接访问对象的私有成员,所以友元的作用是提高程序运行的效率[3_18]答:运行结果是: 10,20 30,48 50,68 70,80 90,16 11,120[3_19]答:运行结果是: Constructing 10 Destructing. 100 Dest

您可能关注的文档

文档评论(0)

cduutang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档