下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精品文档第6章练习题同步练习6.1一、选择题1 .下列类的定义中正确的是()。(A) class aint x=0;int y=1;(C) class cint x;int y;2 .在类定义的外部,可以被访问的成员有( (A)所有类成员(C) public的类成员3 .下列关于类和对象的说法中,正确的是( (A)编译器为每个类和类的对象分配内存 (C)类的成员函数由类来调用4 .关于this指针的说法正确的是()(A) this指针必须显式说明(C)成员函数拥有this指针【解答】D C D C(B) class bintx=0;inty=1;(D) class dint x;int y;)
2、。(B) private 或 protected 的类成员(D) public 或 private 的类成员)。(B)类的对象具有成员函数的副本(D)编译器为每个对象的数据成员分配内存(B)定义一个类后,this指针就指向该类(D)静态成员函数拥有this指针二、程序练习1 .阅读程序,写出运行结果。#include<iostream>using namespace std;class A public :int f1();int f2();void setx( int m ) x = m; cout << x << endl; void sety( int
3、 n ) y = n; cout << y << endl; int getx()return x;int gety()return y;private :int x, y;int A:f1() return x + y; int A:f2() return x - y; int main() A a;a.setx( 10 ); a.sety( 5 );cout << a.getx() << 't' << a.gety() << endl;cout << a.f1() << '
4、;t' << a.f2() << endl;同步练习6.2、选择题(B)构造函数可以重载(D)构造函数可以设置默认参数(B)用户必须定义类的析构函数(D)析构函数可以设置默认参数(C)创建类(D)程序编译时1 .下面对构造函数的不正确描述是()(A)用户定义的构造函数不是必须的(C)构造函数可以有参数,也可以有返回值2 .下面对析构函数的正确描述是()。(A系统在任何情况下都能正确析构对象(C)析构函数没有参数,也没有返回值3 .构造函数是在()时被执行的。(A)建立源程序文件(B)创建对象4 .在下列函数原型中,可以作为类Base析构函数的是()。(A) vo
5、idBase(B) Base()(C) Base()const (D) Base()5 .下面关于复制构造函数调用的时机,不正确的是()调用。(B)对象初始化时(D)函数返回类类型值时。(C)析构函数(D)友元函数)。(C)析构函数(D)友元函数C(A)访问对象时(C)函数具有类类型传值参数时6 .说明一个类的对象时,系统自动调用(A)成员函数(B)构造函数7 .程序中撤销一个类对象时,系统自动调用(A)成员函数(B)构造函数【解答】C C同步练习6.3一、选择题1 .在下列选项中,()不是类的成员函数。(A)构造函数(B)析构函数(C)友元函数(D)复制构造函数2 .下面对友元的错误描述是(
6、)。(A)关键字friend用于声明友元(8) 一个类中的成员函数可以是另一个类的友元(C)友元函数访问对象的成员不受访问特性影响(D)友元函数通过this指针访问对象成员3 .已知类A是类B的友元,类B是类C的友元,则下面选项描述正确的是()。(A)类A 一定是类C的友元(B)类C 一定是类A的友元(C)类C的成员函数可以访问类 B的对象的任何成员(D)类A的成员函数可以访问类B的对象的任何成员4 .下述关于类的静态成员的特性中,描述错误的是()。(A)说明静态数据成员时前边要加修饰符static(B)静态数据成员要在类体外定义(C)引用静态数据成员时,要在静态数据成员前加类名 和作用域运算
7、符(D)每个对象有自己的静态数据成员副本5 .若有以下说明,则对 n的正确访问语句是()。class 丫;public:static int n;;int Y:n;>nY objY;(A) n=1;(B) Y:n=1;(C) objY:n=1; (D) Y6.若有以下类Z说明,则函数fStatic中访问数据a错误的是()。class Z static int a;public:static void fStatic(Z&);; int Z:a=0; Z objZ;(A) void Z:fStatic()(B) void Z:fStatic() (C) void Z:fStatic
8、() (D) void Z:fStatic() objZ.a =1; a = 1; this- >a = 0; Z:a = 0;7.若有以下类 W说明,则函数fConst的正确定义是()class W int a;public:void fConst(int&) const;(A)void W:fConst( int&k )const k = a; (B)void W:fConst( int&k )const k = a+;(C)void W:fConst( int&k )const cin>> a; (D)void W:fConst( int
9、&k )const a = k; 8.若有以下类T说明,则函数fFriend的错误定义是()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
10、+= k; 【解答】CDDDBCAC综合练习一、思考题1 .结构与类有什么区别?如果把程序中定义结构的关键字struct直接改成class,会有什么问题?用教材中的一个例程试试看,想一想做什么修改能使程序正确运行?【解答】结构是数据的封装,类是数据和操作的封装。可以把结构看成是类的特例。结构和类都可以用关键字struct或class定义。区别是,struct定义的结构或类的全部成员都是公有的,用class定义的结构或类不做声明的成员是私有的。若把struct改成class,只需要把全部成员定义为public就可以了。2 .有说明:class Aint a;double x;public:fun
11、Member();A a1, a2, a3;编译器为对象a1、a2和a3开辟了什么内存空间?它们有各自的funMember函数的副本吗? C+通过什么机制调用类的成员函数?【解答】开辟的存储空间有 a1.a, a1.x, a2.a, a2.x, a3.a, a3.x。各对象没有funMember函数的副本,C+通过this 指针调用成员函数。3 . C+提供了系统版本的构造函数,为什么还需要用户自定义构造函数?编写一个验证程序,说明 自定义构造函数的必要性。【解答】类的默认构造函数可以建立基本类型数据成员的存储空间。基于以下两个原因,需要用户定义构造函数:(1)对数据成员的值做指定初始化;(2
12、)类的数据是由指针管理的堆。4.试从定义方式、访问方式、存储性质和作用域4个方面来分析类的一般数据成员和静态数据成员的区别,并编写一个简单程序验证它。【解答】定义方式访问方式存储性质作用域一般数据成员类中定义对象数据成员局部数据由访问属性 public, protected,静态数据成员类中声明,类外定义对象数据成员类:数据成员全局数据private 决定5.试从定义方式、调用方式两个方面来分析常成员函数、静态成员函数和友元函数的区别。定义方式调用方式常成员函数函数原型以const做后缀this指针被约束为指向常量的常指针与一般成员函数调用形式相同对数据成员只读静态成员函数以static做函数
13、原型前缀通过类或对象调用没有this指针用于操作静态数据成员友员函数以friend做函数原型前缀没有this指针通过参数访问对象可以访问对象的不同属性的成员2.定义一个BOX (盒子)类,在该类定义中包括以下数据成员和成员函数。数据成员:length (长)、width (宽)和 height (高)。成员函数:构造函数BOX,设置盒子的长、宽和高三个初始数据;成员函数volume计算盒子的体积。在main函数中,要求创建 BOX对象,输入长、宽、高,例如box1(1,3,5)和box2 (2,4,6),输出盒子的体积。【解答】#include <iostream>using namespace std;class BOX public:BOX( double l, double w, double h ) length = l;width = w;height = h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川成都市锦江区国企招聘18人笔试备考试题及答案解析
- 2026四川内江市公安局高新技术开发区分局第一次招聘警务辅助人员15人笔试备考试题及答案解析
- 2026湖北武汉市公立高中招聘3人笔试模拟试题及答案解析
- 青浦区计划招聘2026年度储备人才28名笔试参考题库及答案解析
- 2026四川广元市青川县交通运输局考调事业单位人员1人笔试参考题库及答案解析
- 2025年普洱市建设工程质量检测中心有限公司招聘(2人)笔试参考题库及答案解析
- 2026年上半年云南怒江州泸水市古登乡征兵笔试备考题库及答案解析
- 2026广东佛山南海区西樵镇樵北中学招聘一名笔试备考题库及答案解析
- 2026河北邢台市宁晋县人社局招聘公益性岗位17人笔试备考题库及答案解析
- 2026湖北省东风特种商用车有限公司招聘3人笔试备考试题及答案解析
- 消防维保计划实施方案
- 有子女离婚协议书
- 北京市2025-2026学年高二(上)期末物理适应卷C(含答案)
- 2026年黑龙江高职单招考试高考语文试卷试题(含答案)
- 完整版老旧小区改造工程施工组织设计方案
- 全球隐球菌病指南(2024版):诊断与管理课件
- 市场营销策划实践实习报告范例
- 山西省2026届高三第一次八省联考地理(T8联考)(含答案)
- 2026年中央广播电视总台招聘124人备考笔试题库及答案解析
- 四川水利安全b证考试试题及答案
- 2626《药事管理与法规》国家开放大学期末考试题库
评论
0/150
提交评论