版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、练习,1.在下列关键字中,用以说明类中公有成员访问权限控制的是( )。 Apublic Bprivate Cprotected Dfriend,练习,2.在下列各类函数中,不属于类成员函数的是( )。 A构造函数 B析构函数 C友元函数 D拷贝构造函数,练习,3.作用域运算符的功能是( )。 A标识作用域的级别 B指出作用域的范围 C给定作用域的大小 D标识某个成员是属于哪个类的,练习,4.不属于构造函数特征的是( )。 A构造函数的函数名与类名同名 B构造函数可以重载 C构造函数可以设置缺省(默认)参数 D构造函数必须指定类型说明,构造函数性质: (1)函数名与类同 (2)不能有返回值,包括
2、void (3)定义对象时,系统自动调用构造函数,析构函数特征 函数名是在类名前加; 不指定函数类型(也不能是oid); 无参。,练习,5.属于析构函数特征的是( )。 A一个类中只能定义一个析构函数 B析构函数名与类名同名 C析构函数只能定义在类的体内 D析构函数可以有一个或多个参数,练习,6.通常拷贝构造函数的参数是( )。 A类对象名 B类对象的成员名 C类对象的引用名 D类对象的指针名,复制构造函数的格式: 类名:类名(const 类名 Bint A:*pc=,指向对象成员函数的指针的定义 函数类型(类名:*指针变量名)(函数参数表);,指向对象成员函数的指针变量的赋值 指针变量名=,
3、练习,14.运算符-*的功能是( ) A用来表示指向对象的指针对指向类成员指针的操作 B用来表示对象对指向类成员指针的操作 C用来表示指向对象的指针对类成员的操作 D用来表示对象类成员的操作,指向对象成员函数的指针对成员函数的调用 (对象.*指针名)(实参表) 或(对象指针-*指针名)(实参表) 或(*对象指针).*指针名)(实参表),练习,15.已知f1(int)是类A的公有成员函数,p是指向成员函数f1(int)的指针,下列引用正确的是( ) Ap=f1; Bp=A:f1; Cp=A:f1( ); Dp=f1( );,练习,16.已知:p是一个指向类A的公有数据成员m的指针,a是类A的一个
4、对象。如果要给m赋值为5。下列正确的是( ) Aa.p=5; Ba-p=5; Ca.*p=5; D*a.p=5;,练习,17.已知:类A中一个成员函数说明如下: void Set( A 其中,A A指向字符常量的指针 B指向字符的常量指针 C指向字符串常量的指针 D指向字符串的常量指针,指向常量的指针变量的定义 const 类型名 * 指针变量名;,指向变量的常指针定义 类型名 * const 指针变量名初值;,练习,20.已知:print( )函数是一个类的常成员函数,它无返回值,下列声明正确的是( ) Avoid print( ) const; Bconst void print( );
5、Cvoid const print( ); Dvoid print(const);,常成员函数 声明:函数类型 函数名(形参列表) const;,练习,21.关于new运算符的下列描述中,错误的是( ) A它可以用来动态创建对象和对象数组。 B使用它创建的对象或对象数组可以使用运算符delete删除。 C使用它创建对象时要调用构造函数。 D使用它创建对象数组时必须指定初值。,练习,22.关于delete运算符的下列描述中,错误的是( ) A它必须用于new运算符返回的指针。 B它也适用于空指针。 C对一个指针可以使用多次该运算符。 D指针名前只用一对方括号符,不管所删除数组的维数。,练习,23
6、.关于静态成员的描述中( )是错误的。 A 静态成员可分为静态数据成员和静态成员函数 B 静态数据成员定义后必须在类体内进行初始化 C 静态数据成员初始化不使用其构造函数 D 静态数据成员函数中不能直接引用非静态成员,练习,24.关于友元的描述中( )是错误的。 A 友元函数是成员函数,它被说明在类体内 B 友元函数可直接访问类中的私有成员 C 友元函数破坏封装性,使用时尽量少用 D 友元类中的所有成员函数都是友元函数,练习,判断下列描述的正确性。 1使用关键字class定义的类中缺省的访问权限是私有的。 2作用域运算符只能用来限定成员函数所属的类。 3析构函数是一种函数体为空的成员函数。 4
7、构造函数与析构函数都不能重载。 5说明或定义对象时,类名前面不需要加class关键字。,练习,6对象成员的表示与结构体变量成员表示相同,使用运算符.或-。 7所谓私有成员是指只有类中所提供的成员函数才能直接访问它们,任何类以外的函数对它们的访问都是非法的。 8可以在类的构造函数中对静态数据成员进行初始化。 9如果一个成员函数只存取一个类的静态数据成员,则可将该成员函数说明为静态成员函数。 10.已知:m是类A的对象,n是类A的公有数据成员,p是指向类A中n成员的指针。下述两种表示是等价的:m.n与m.*p,练习,填空 1在C+中,可以把具有相同内部存储结构和相同操作的对象看成属于同一类。在指定
8、一个类后,往往把属于这个类的对象称为类的 。从语言角度来说,类是一种数据类型,而 是具有这种类型的变量。 实例 对象 2在类的定义体外定义成员函数时,需要在函数名前加上 ,而在类域外使用成员函数时,需要在成员函数名前冠以 的名字。 类名: 对象,练习,3在任何类中允许有三种访问权限的数据,即 、 、 。 public private protected 4类中的数据成员和成员函数默认类型为 ,而结构体中的数据成员和成员函数为 。 private public,练习,5定义在类内部的函数为类默认状态的 ,在类外部每次调用该函数时,定义的函数代码会在调用函数的位置展开。 内联函数 6静态数据成员在
9、定义或说明时前面要加上关键字 ,而 成员函数的实现中不能直接引用类中说明的非静态成员。 static static,练习,7在用某类的一个对象初始化该类的另一个对象时, 被调用。 复制构造函数 8当使用new运算符创建一个对象时,new隐含着对 的一次调用。当使用delete运算符删除一个对象时,delete隐含着对 的一次调用。 构造函数 析构函数,练习,9在用类型修饰符 修饰的对象称为常对象,定义常对象时要对其进行 操作,并且常对象不能再被更新。 const 初始化,常对象定义 const 类名对象名(参数列表); 或 类名 const 对象名(参数列表);,练习,分析程序运行结果1 #i
10、nclude using namespace std; class Count public: Count() count+; static int HM() return count; Count() count-; private: static int count; ;,int Count:count=100; int main() Count c1,c2,c3,c4; coutCount:HM()endl; return 0; ,练习,int Count:count=100; int main() Count c1,c2,c3,c4; coutCount:HM()endl; retur
11、n 0; ,练习,分析程序运行结果2 #include using namespace std; class Sample int x,y; public: Sample(int a=0,int b=0) x=a;y=b; Sample() if(x=y) coutx=yendl; else coutx!=yendl; ,void disp() coutx=x,y=yendl; ; int main() Sample s1,s2(2,3); s1.disp();s2.disp(); return 0; ,练习,void disp() coutx=x,y=yendl; ; int main()
12、Sample s1,s2(2,3); s1.disp();s2.disp(); return 0; ,练习,分析程序运行结果3 #include using namespace std; class A public: A(); A(int i,int j); A(const A ,练习,A:A() a=0;b=0;cout默认构造函数被调用!n; A:A(int i,int j) a=i; b=j; cout构造函数被调用n; A:A(const A ,练习,int main() A a1,a2=A(1,1); A b1(7,8),b2=b1; return 0; ,练习,分析程序运行结果4
13、 #include using namespace std; class A public: A(); A(int i,int j); A(); void Set(int i,int j) a=i; b=j; private: int a,b; ;,练习,A:A() a=0;b=0;cout默认构造函数被调用!n; A:A(int i,int j) a=i; b=j; cout构造函数被调用n; A:A() cout析构函数被调用:a=a,b=bendl; ,练习,int main() A a3; for(int i=0;i3;i+) ai.Set(2*i+1,(i+1)*2); A b3=A
14、(1,2),A(3,4),A(5,6); return 0; ,练习,分析程序运行结果5 #include using namespace std; class A public: A(); A(int i,int j); A(const A ,练习,A:A() a=0;b=0;cout默认构造函数被调用!n; A:A(int i,int j) a=i; b=j; cout构造函数被调用n; A:A(const A ,练习,int main() A a3; for(int i=0;i3;i+) ai.Set(i+1,i+2); A b1(7,8),b2=b1; return 0; ,练习,分析程序运行结果6 #include using namespace std; class B int x,y; public: B() x=y=0; cout默认构造函数被调用!n; B(int i) x=i; y=0; cout对象1被构造!n; B(int i,int j) x=i;y=j; cout对象2被构造!n; B() coutB类对象被析构!n; void print() coutx=x,y=yendl; ;,练习,int main() B *ptr; ptr=new B3; ptr0=B(); ptr1=B(5); ptr2=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年幼儿园教案和群
- 2026年茶文化主题幼儿园
- (2026年)成人有创机械通气气道内吸引技术操作课件
- (2026)带状疱疹后神经痛的诊治 课件
- 2026年病毒幼儿园中班
- 2026年昆虫幼儿园探究课
- 2026年幼儿园快乐心情
- 2026年幼儿园签到环节改进
- 2026年幼儿园跳绳教研
- 售后服务质量与维修手册
- 家庭基金内部管理制度
- 高血压糖尿病培训教学课件
- 2025年青海新泉财金投资管理有限公司招聘备考题库及1套参考答案详解
- 2025内蒙古呼和浩特市北兴产业投资发展有限责任公司猎聘高级管理人员2人笔试考试参考试题及答案解析
- JJF(机械) 1067-2021 霍尔电流传感器校准规范
- 2025~2026学年云南省昆明市官渡区人教版(小升初)数学检测试卷【附解析】
- 鱼:知之烹之食之-联合国粮食及农业组织
- 地方志编纂工作方案及实施流程
- 贝壳房屋委托协议书
- 湖北省圆创高中名校联盟2026届高三第一次联合测评 语文试卷(含答案)
- 检察机关刑事申诉课件
评论
0/150
提交评论