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

7、若要把void fun()定义为类A的友元函数,则应在类A的定义中加入语句 friend void fun(A &a) 。

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

11、后置自增运算符“++”重载为类的成员函数(设类名为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

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

cout<<\ return 0;

A A(const }

答案:1、a=89,b=56,c=12 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 ( ) {

C obj; return 0; }

答案:2、ABC 3、

#include using namespace std; class A {public:

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

class B: public A {public:

B(int i)

{ cout<<\ }

virtual ~B() { delete []buf; } private:

char *buf; }; int main()

{ A *a=new B(15);

delete a; return 0; }

答案:3、A::A() called. B::B() called.

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

B::~B() called.

A::~A() called. 4、

#include using namespace std; class A {public: }; class B {public: };

class C: public A, public B {public: }; int main() {

C cc; cc.B::f();

void g(){cout<<\ void f() {cout<<\

void g() {cout<<\ void f(){cout<<\

cc.B::g(); }

cc.g(); return 0;