7、若要把void fun()定义为类A的友元函数,则应在类A的定义中加入语句 friend void fun(A &a) 。
8、列出C++中的两种代码复用方式:继承 和 组合或模板 。 9析构函数的作用是 在对象被系统释放前,清理内存 。 10、假定A是一个类名,则该类的拷贝构造函数的原型说明语句为: A&) 。
11、后置自增运算符“++”重载为类的成员函数(设类名为A)的形式为: operator ++(int) 。
三、阅读下面4个程序,写出程序运行时输出的结果。(共13分) 1、
#include
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
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
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
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;