C++面向对象程序设计习题 类与对象

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

类和对象(一)

知识点:

1.类与对象的概念,及两者的关系?

2.类定义的格式,对象定义的格式,访问对象的成员的格式

3.类中成员访问权限有哪几种,它们的特点?

4.如何对对象进行初始化?

5.构造函数与析构函数的特点,构造函数在哪些情况下被系统自动调用,析构函数什么情况下被调用;存在虚基类的派生类构造函数调用顺序?

6.缺省构造函数的特点

7.拷贝构造函数的功能与特点

8.成员函数与内联函数的区别

9.静态成员的概念与作用

10.静态成员函数调用格式

11.什么是友元,友元的作用

12.作用域运算符的功能是什么?它的使用格式如何?

13.满足成员函数重载的条件

练习题1

一、选择填空

1.在下列关键字中,用以说明类中公有成员的是( )。

A .public;B.private;C.protected;D.friend。

2.下列的各类函数中,( )不是类的成员函数。

A.构造函数;B.析构函数;C.友元函数;D.拷贝初始化构造函数。

3.作用域运算符的功能是( )。

A.标识作用域的级别的;

B.指出作用域的范围的;

C.给出作用域的大小的;

D.标识某个成员是属于哪个类的。

4.( )是不可以作为该类的成员的。

A.自身类对象的指针;

B.自身类的对象;

C.自身类对象的引用;

D.另一个类的对象。

5.( )不是构造函数的特征。

A.构造函数的函数名与类名相同;

B.构造函数可以重载;

C.构造函数可以重载设置缺省参数;

D.构造函数必须指定类型说明。

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

A.一个类中能定义一个析构函数;

B.析构函数名与类名不同;

C.析构函数的定义只能在类体内;

D.析构函数可以有一个或多个参数。

7.通常的拷贝初始化构造的参数是( )。

A.某个对象名;

B.某个对象的成员名;

C.某个对象的引用名;

D.某个对象的指针名。

8.关于成员函数特征的下述描述中,( )是错误的。

A.成员函数一定是内联函数;

B.成员函数可以重载;

C.成员函数可以设置参数的缺省值;

D.成员函数可以是静态的。

9.下述静态数据成员的特性,( )是错误的。

A.说明静态数据成员是前面要加修饰符STA TIC;

B.静态数据成员要类外进行初始化;

C.引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符;

D.静态数据成员不是所有对象所公有的。

10.友元的作用( )。

A.提高程序的运用效率;

B.加强类的封装性;

C.实现数据的隐藏性;

D.增强成员函数的种类。

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

1.使用关键字class定义的类中缺省的访问权限是私有(private)的。

2.作用域运算符( ::)只能用来限定成员函数所属的类。

3.析构函数是一种函数体为空的成员函数。

4.析构函数和构造函数都不能重载。

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

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

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

8.某类中的友元类的所有成员函数可以存取或修改该类中的私有成员。

9.可以在类的构造函数中对静态数据成员进行初始化。

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

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

1.

#include

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="<

void main()

{

A m,n(4,8);

m.print();

n.print();

}

2.

#include

class Count

{

public:

Count () { count++; }

static int HM() { return count; }

~Count( ) { count--; }

private:

static int count;

};

int Count::count=100;

void mian()

{

Count c1,c2,c3,c4;

Cout<

相关文档
最新文档