- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c类与对象习题
概念填空题
1.1 类定义的关键字是 。类的数据成员通常指定为 成员。类的函数成员通常指定为 成员,指定为 的类成员可以在类对象所在域中的任何位置访问它们,类的 只能被该类的成员函数或友元函数访问。
1.2类的访问限定符包括 、 和 。类成员默认的访问方式是 。访问限定符在类中 (有/无)先后次序,各限定符 (允许/不允许)多次出现。
1.3 构造函数的任务是 。类中可以有 个构造函数,它们由 区分。如果类说明中没有给出构造函数,则C++编译器会提供构造函数,该函数 (完成/不完成)对象初始化工作。
1.4复制构造函数的参数是 ,当程序没有给出复制构造函数时,编译系统会提供 ,完成类对象的 。复制构造函数被调用情况有 种(哪几种)。
1.5析构函数在对象 时被自动调用。类中没有定义析构函数时,编译系统会提供一个默认的析构函数。该函数 完成/不完成)具体对象的清理工作。
2. 简答题
2.1 为什么说类与对象的概念是客观世界的反映?
2.2 简单解释什么是面向对象程序设计的封装性。
2.3 引用作为函数参数时为什么能实现两个实参之间的数据交换?为什么对应实参不能为引用?为什么返回值为引用的函数可以作为左值?
2.4 什么是默认的构造函数?默认的构造函数可以有多少个?
2.5 复制构造函数用于哪3个方面?
2.6 为什么在友元函数的函数体内访问对象成员时,必须用对象名加运算符”.”再加对象成员名?
2.7 类的静态数据成员与函数中的静态成员有何异同?
2.8 类的成员函数在什么情况下应该定义为私有的?这样做的目的是什么?
2.9 友元关系有何性质?友元关系的优点和缺点各有哪些?
3.选择题
3.1 数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是( )。
A.类 B.对象 C.函数体 D.数据块
3.2 类的实例化是指( )。
A.定义类 B.创建类的对象 C.指明具体类 D.调用类的成员
3.3下列说法中正确的是( )。
A.类定义中只能说明函数成员的函数头,不能定义函数体
B.类中的函数成员可以在类体中定义,也可以在类体之外定义
C.类中的函数成员在类体之外定义时必须要与类声明在同一文件中
D.在类体之外定义的函数成员不能操作该类的私有数据成员
3.4有如下类定义:
class sample {
int n;
public:
sample (int i=0):n(i){ }
void setValue(int n0);
};
下列关于setValue成员函数的实现中,正确的是( )。
A.sample::setValue(int n0){n=n0;}
B.void sample::setValue(int n0){n=n0;}
C.void setValue(int n0){n=n0;}
D.setValue(int n0){n=n0;}
3.5在下面的类定义中,错误的语句是( )。
class sample{
public:
sample(int val); //①
~sample( ); //②
private:
int a=2.5; //③
public:
sample( ); //④
};
A.① B.② C.③ D.④
3.6类的构造函数被自动调用执行的情况是在创建该类的( ) 。
A.成员函数时 B.数据成员时
C.对象时 D.友元函数时
3.7( )是析构函数的特征。
A.一个类中只能定义一个析构函数
B.析构函数名与类名不同
C.析构函数的定义只能在类体内
D.析构函数可以有一个或多个参数
3.8 在下列函数原型中,可以作为类AA构造函数的是( )。
A.void AA(int); B.int AA( );
C.AA(int) const; D.AA(int)
3.9关于成员函数特征的下述描述中,( )是错误的。
A.成员函数一定是内联函数
文档评论(0)