《面向对象程序设计c++》期末试卷及标准答案(a) () 下载本文

内容发布更新时间 : 2024/5/4 5:11:42星期一 下面是文章的全部内容请认真阅读。

二、填空题(前14个空,每空1分,后3个空,每空2分,共20分)

1、类和对象的关系可表述为:类是对象的 抽象 ,而对象则是类的 实例 。

2、静态成员函数没有隐含的 this指针 ,所以,在C++程序中,静态成员函数主要用来访问静态数据成员,而不访问非静态成员。

3、在图1中,A,B,C,D,E,F均是类,其中属于单继承的派生类有 E ,属于多继承的派生类有 D 、F ,类F的基类有 A、B、C、D、E ,类A的派生类有 D、F 。

A D F

图1 类的继承层次图

拷贝构造函数声明: Point(Point&) Point(const

B C E Point&) 析构函数声明:~类名 如~Person() 常对象语法格式为:const class_Type object_name 或class_Type const object_name 常引用: const data_type & reference_name 常函数: return_type function_name(formal parameters list) const 静态数据成员:static datatype variablename 静态函数:static return_type Function_name(formal parameters list) 友元函数: friend return_type function_name(formal parameters list)

4、如果只想保留公共基类的一个复制,就必须使用关键字 virtual 把这个公共基类声明为虚基类。

5、从实现的角度来讲,多态性可以划分为两类: 静态多态性 和动态多态性性 。

6、如果一个类包含一个或多个纯虚函数,则该类称为 抽象性 。 7、若要把void fun()定义为类A的友元函数,则应在类A的定义中加入语句 friend void fun(A &a) 。

8、列出C++中的两种代码复用方式: 继承 和 组合或模板 。 9、析构函数的作用 在对象被系统释放之前做一些内存清理工作 。 10、假定A是一个类名,则该类的拷贝构造函数的原型说明语句为: A(const A&) 。

11、后置自增运算符“++”重载为类的成员函数(设类名为A)的形式为:A operator++(int) 。

三、阅读下面4个程序,写出程序运行时输出的结果。(共13分) 1、

#include using namespace std; void fun(int &a, int &b) { int p; p=a; a=b; b=p; }

void exchange(int &a, int &b, int &c) { if( a

if( b

{ int a=12,b=89,c=56; exchange(a, b, c);

cout<<\ return 0; } 2、

#include using namespace std; class A { public:

A( ) { cout << \}; class B { public:

B( ) { cout <<\ };

class C: public A { public:

C( ) { cout << \Private: B b; };

int main ( ) {

a=89,b=56,c=12 C obj; ABC return 0; } 3、

#include using namespace std; class A {public:

A(){cout<<\virtual ~A(){cout<<\};

class B: public A {public:

B(int i)

{ cout<<\ buf=new char[i];

}

virtual ~B() { delete []buf;

cout<<\} private:

char *buf; };

A::A() called. B::B() called. B::~B() called. A::~A() called.