c++类与对象练习题

上传人:小** 文档编号:59120741 上传时间:2018-11-04 格式:DOC 页数:17 大小:82.50KB
返回 下载 相关 举报
c++类与对象练习题_第1页
第1页 / 共17页
c++类与对象练习题_第2页
第2页 / 共17页
c++类与对象练习题_第3页
第3页 / 共17页
c++类与对象练习题_第4页
第4页 / 共17页
c++类与对象练习题_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《c++类与对象练习题》由会员分享,可在线阅读,更多相关《c++类与对象练习题(17页珍藏版)》请在金锄头文库上搜索。

1、1 概念填空题1.1 类定义的关键字是 class 。类的数据成员通常指定为 私有 成员。类的函数成员通常指定为 公有 成员,指定为 公有 的类成员可以在类对象所在域中的任何位置访问它们,类的 私有和保护 只能被该类的成员函数或友元函数访问。1.2类的访问限定符包括 public、 private 和 protected 。类成员默认的访问方式是 private 。访问限定符在类中 无 先后次序,各限定符 允许 (允许/不允许)多次出现。1.3 构造函数的任务是 建立对象 。类中可以有 多 个构造函数,它们由 参数 区分。如果类说明中没有给出构造函数,则C+编译器会提供构造函数,该函数 不完成

2、 (完成/不完成)对象初始化工作。1.4复制构造函数的参数是 对象的复制 ,当程序没有给出复制构造函数时,编译系统会提供 默认复制构造函数 ,完成类对象的 复制 。复制构造函数被调用情况有 3 种。1.5析构函数在对象 释放 时被自动调用。类中没有定义析构函数时,编译系统会提供一个默认的析构函数。该函数 不完成 (完成/不完成)具体对象的清理工作。2. 简答题2.1 为什么说类与对象的概念是客观世界的反映?2.2 简单解释什么是面向对象程序设计的封装性。2.3 引用作为函数参数时为什么能实现两个实参之间的数据交换?为什么对应实参不能为引用?为什么返回值为引用的函数可以作为左值?2.4 什么是默

3、认的构造函数?默认的构造函数可以有多少个?2.5 复制构造函数用于哪3个方面?2.6 为什么在友元函数的函数体内访问对象成员时,必须用对象名加运算符”.”再加对象成员名?2.7 类的静态数据成员与函数中的静态成员有何异同?2.8 类的成员函数在什么情况下应该定义为私有的?这样做的目的是什么?2.9 友元关系有何性质?友元关系的优点和缺点各有哪些?3.选择题3.1 数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是( B )。A类 B对象 C函数体 D数据块3.2 类的实例化是指( B )。A定义类B创建类的对象C指明具体类D调用类的成员3.3下列说法中正确的是(

4、B )。A类定义中只能说明函数成员的函数头,不能定义函数体 B类中的函数成员可以在类体中定义,也可以在类体之外定义 C类中的函数成员在类体之外定义时必须要与类声明在同一文件中 D在类体之外定义的函数成员不能操作该类的私有数据成员3.4有如下类定义:class sample int n;public:sample (int i=0):n(i) void setValue(int n0);;下列关于setValue成员函数的实现中,正确的是( B )。Asample:setValue(int n0)n=n0;Bvoid sample:setValue(int n0)n=n0;Cvoid setVa

5、lue(int n0)n=n0;DsetValue(int n0)n=n0;3.5在下面的类定义中,错误的语句是( C )。class sample public: sample(int val);/ sample( ); / private:int a=2.5; / public:sample( ); /; ABCD3.6类的构造函数被自动调用执行的情况是在创建该类的(C)。 A成员函数时 B数据成员时 C对象时 D友元函数时3.7(A)是析构函数的特征。 A一个类中只能定义一个析构函数 B析构函数名与类名不同 C析构函数的定义只能在类体内 D析构函数可以有一个或多个参数3.8 在下列函数原

6、型中,可以作为类AA构造函数的是( D )。 Avoid AA(int); Bint AA( ); CAA(int) const; DAA(int)3.9关于成员函数特征的下述描述中,(A)是错误的。 A成员函数一定是内联函数 B成员函数可以重载 C成员函数可以设置参数的默认值 D成员函数可以是静态的3.10不属于成员函数的是(B )。 A静态成员函数 B友元函数 C构造函数 D析构函数3.11已知类A是类B的友元,类B是类C的友元,则(d )。 A类A一定是类C的友元 B类C一定是类A的友元 C类C的成员函数可以访问类B的对象的任何成员 D类A的成员函数可以访问类B的对象的任何成员3.12有

7、如下类定义: class AAint a; public:int getRef( ) const return &a; /返回类型为int, return &a为地址int getValue( ) const return a; /void set(int n) consta=n; /常函数不能修改成员friend void show(AA aa) const couta=a;/常函数不能修改成员void h(int b) Test:b=b;/static int g( ) return a;/静态函数要通过对象访问成员private:int a;static int b;const int

8、c;int Test:b=0;在标注号码的行中,能被正确编译的是(C)。A B C D4写出程序程序执行结果。4.1#includeusing namespace std;class Test public:Test( ) n+=2; Test( ) n-=3;static int getNum( ) return n;private:static int n;int Test:n=1;int main( )Test * p = new Test;delete p;cout”n=”Test:getNum( )endl;return 0;n=04.2#includeusing namespace

9、 std;class AAint n;public:AA(int k):n(k)int get( ) return n;int get( ) const return n+1;int main( )AA a(5);const AA b(6);couta.get()”,”b.get();return 0;574.3#includeusing namespace std;class MyClass public:int number;void set(int i);int number=3;void MyClass:set (int i)number=i;void main( )MyClass m

10、y1;int number=10;my1.set(5);coutmy1.numberendl; 5my1.set(number);coutmy1.numberendl; 10my1.set(:number);coutmy1.number;51034.4#includeusing namespace std;class Testprivate:static int val;int a;public:static int func( );void sfunc(Test &r);int Test:val=200;int Test:func( )return val+;void Test:sfunc(

11、Test &r)r.a=125;coutResult3=r.aendl;void main( )coutResult1=Test:func( )endl; 200Test a;coutResult2=a.func()endl; 201a.sfunc(a); 125Result1=200Result2=201Result1=1255.编程题5.1 构造一个日期时间类(Timedate),数据成员包括年、月、日和时、分、秒,函数成员包括设置日期时间和输出时间,其中年、月用枚举类型,并完成测试(包括用成员函数和用普通函数)。#include #include #include enum YRY200

12、0,Y2001,Y2002,Y2003,Y2004,Y2005;/枚举名必须是标识符enum MTJan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec;class Timedateprivate:YR year;MT month;int date;int hh;int mm;int ss;public:Timedate()year=Y2000;month=Jan;date=1;hh=0;mm=0;ss=0;Timedate(YR a,MT b,int c)year=a;month=b;date=c;hh=12;mm=30;ss=0;void getdate(YR &,MT &,int &);/体会用引用的优点,一次可返回3个值void getti

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号