云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 第五章答案类、构造函数、拷贝构造函数、静态成员、友元

第五章答案类、构造函数、拷贝构造函数、静态成员、友元

  • 62 次阅读
  • 3 次下载
  • 2025/5/6 3:42:30

答:D。

6.( )是析构函数的特征。

A.一个类中只能定义一个析构函数 B.析构函数名与类名不同

C.析构函数的定义只能在类体内 D.析构函数可以有一个或多个参数 答:A。

7.通常的拷贝初始化构造函数的参数是( )。 A.某个对象名

B.某个对象的成员名 C.某个对象的引用名 D.某个对象的指针名 答:C。

8.关于成员函数特征的下述描述中,( )是错误的。 A.成员函数一定是内联函数 B.成员函数可以重载

C.成员函数可以设置参数的默认值 D.成员函数可以是静态的 答:A。

9.下述静态数据成员的特性中,( )是错误的。 A.说明静态数据成员时前边要加修饰符static B.静态数据成员要在类体外进行初始化

c.引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符 D.静态数据成员不是所有对象所共用的 答:D。

l0.友元的作用( )。 A.提高程序的运用效率 B.加强类的封装性 C.实现数据的隐藏性 D.增加成员函数的种类 答:A。

二、判断下列描述的正确性,对者划√,错者划×

√1.使用关键字class定义的类中默认的访问权限是私有(private)的 ×2.作用域运算符(::)只能用来限定成员函数所属的类。 ×3.析构函数是一种函数体为空的成员函数。 ×4.构造函数和析构函数都不能重载。

√5.说明或定义对象时,类名前面不需要加class关键字。

√6.对象成员的表示与结构变量成员表示相同,使用运算符.或一>。

×7.所谓私有成员是指只有类中所提供的成员函数才能直接使用它们,任何类 外的函数对它们的访问都是非法的。

√8.某类中的友元类的所有成员函数可以存取或修改该类中的私有成员。 ×9.可以在类的构造函数中对静态数据成员进行初始化。

√10.如果一个成员函数只存取一个类的静态数据成员,则可将该成员函数说明为 静态成员函数。

三、分析下列程序的输出结果 1.

#include<iostream.h> class A {

public: A();

A(int i,int j); void print( ); private: int a,b; };

A::A( ) {

a=b=0;

cout<<”default constructor called.\n”; } A::A(int i,int j) {

a=i; b=j;

cout<<”Constructor called.\n”; } void A::print() {

cout<<”a=”<<a<<”,b=”<<b<<endl; }

void main( ) {

A m,n(4,8); m.print(); n.print(); }

运行该程序输出结果如下所示。 Default constructor called Constructor called a=O, b=O a=4, b=8 说明:

该程序中定义一个类A,该类中有两个构造函数,一个是默认构造函数,另一个是带 两个参数的构造函数。类中还有一个Print()函数,用来输出显示该类的两个私有数据成员的值。类中的所有成员都定义在类体外,该类有明显的说明部分和实现部分。 读者可将实现部分省略,将函数定义放在类体内试一下。

2.

#include<iostream.h> class B {

Public: B(){}

B(int i,int j); void printb(); private: int a,b; };

class A {

public: A(){}

A(int i,int j); void printa( ); private: B c; };

A::A(int i.Int j):c(i,j) {}

void A::printa( ) {

c.printb( ); }

B::B(int i,int) {

a=i; b=j; }

void B::printb()

cout<<”a=”<<a<<”,b=”<<b<<end1; }

Void main() {

A m(7,9); m.Printa(); }

运行该程序输出结果如下所示. a=7,b=9 说明:

该程序中有两个类:A和B.在类A中有一个类B对象作为私有的数据成员,该 成员又称为子对象,有关子对象的详情在下一章中讲述,包含该类中带有两个参数的

构造函数带有成员初始化表的问题等. 3.

#include<iostream.h> class Count {

Public:

Count( ) {count十十;}

static int HM( ) {return count;} ~Count( ) { count一一;) private:

static int count: };

int Count::count=100; void main() {

Count c1,c2,c3,c4;

cout<<count:: HM()<<endl; }

运行该程序输出如下结果 104 说明:

该程序中只定义一个类Connt,该类中有一个静态成员函数HM()和静态数据成员 count。对静态数据成员在类体外以下述形式进行了初始化。 int Count::count=100; 使count值为l00。

该类中还有一个默认构造函数和析构函数,这两个函数中对静态数据成员count进 行了操作。

在主函数中,先创建了该类的4个对象cl,c2,c3和c4。这时系统自动调用4次默认构造函数进行初始化。于是,count将增值为l04。再使用类名限定的形式调用静态成员函数HM(),输出显示出count的值为104。

结束程序前,系统又自动调用4次析构函数,结果使count值又恢复到初值loo。关于这一点请读者编程验证一下。 4.

#include<iostream.h> class A {

public:

A(double t,double r) { Total=t;Rate=r;} friend double Count(A&a) {

a.Total+=a.Rate * a.total; return a.Total; }

privat:

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

答:D。 6.( )是析构函数的特征。 A.一个类中只能定义一个析构函数 B.析构函数名与类名不同 C.析构函数的定义只能在类体内 D.析构函数可以有一个或多个参数 答:A。 7.通常的拷贝初始化构造函数的参数是( )。 A.某个对象名 B.某个对象的成员名 C.某个对象的引用名 D.某个对象的指针名 答:C。 8.关于成员函数特征的下述描述中,( )是错误的。 A.成员函数一定是内联函数 B.成员函数可以重载 C.成员函数可以设置参数的默认值 D.成员函数可以是静态的 答:A。 9.下述静态数据成员的特性中,( )是错误的。 A.说明静态数据成员时前边要加修饰符static B.静态数据成员要

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com