发布时间 : 星期四 文章面向对象程序设计(C++)复习题更新完毕开始阅读c03e8d7eb90d6c85ec3ac67a
15.面向对象方法构造的系统,其基本单位是对象 。
16.生成一个派生类对象时,先调用基类的构造函数,然后调用派生类的构造函数。 17.AA operator +(AA x )表示为运算符+重载。
18.若在类的定义体中只给出了一个成员函数的原型,则在类外给出完整定义时,其函数名前必须加上类名 和两个冒号分隔符。
19.若采用x.abc(y)表达式调用一个成员函数,在成员函数中使用的*this就代表了类外的x对象。
20.假定用户没有给一个名为AB的类定义析构函数,则系统为其定义的析构函数为~AB(){}。 21.类的成员按访问权限可分为三类: 公有 、私有、保护。 22.在一个类中定义复制构造函数的目的,是为了当利用该类的一个对象初始化另一个对象时,能够避免这两个对象的同一指针同时指向同一块 地址 。
23. 假定 AB为一个类,则执行“AB a[10];”语句时,系统自动调用该类构造函数的次数为10。
24. 假定要把aa定义为AB类中的一个常量整数型数据成员,则定义语句为const int aa;。 25.假定AB为一个类,则该类的复制构造函数的函数头为AB(AB & )。
26.假定AB为一个类,该类中含有一个指向动态数组空间的指针成员pa,则在该类的析构函数中应该包含有一条delete pa语句。
27. 静态成员函数只能访问类的静态数据成员,非静态成员函数 访问类的非静态数据成员。 28. 一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明必须在函数名前加上 friend 的限定。
29. 一个单目运算符作为类的成员函数重载时有0个参数;如果作为友元函数重载,则有1个参数。
30. 若多个基类及其派生类中都定义了同名函数成员,要访问相应函数时,就需要在函数名前加上基类名和类区分符。
31. 若要保证一个公共的基类在派生类中只产生一个基类子对象,则必须都以virtual 的方式直接继承它。
32. 引进虚基类的根本目的是为了消除二义性。
33. 在每个成员函数中,隐含的第一个参数的参数名为this指针。
三 写出下列程序的运行结果
1. (1)
#include
struct ab {
char a[5]; float b; };
void main() { ab x={\
cout< } 2. (2) #include struct ab {char a ; float b; }; void f(ab &y) { y.a='W'; y.b=90.5; } void main() { ab x={'L',89.5}; f(x); cout< 3. (3) #include #include A(char *s) { a=new char[strlen(s)+1]; strcpy(a,s); cout< cout<<\ } }; void main() { A x(\ A y( \ } 4. (4) #include int n=0; class A { int a; public: A(int aa=0) {a=aa; n++;} ~A() {n--;cout< void main() { A a; a.show(); { A x[2]; x[1].show(); } a.show(); } 5. (5) #include { int a,b; public: A( ) {a=b=0;cout< {a=aa;b=bb; cout< void main() { A x,y(10,5);} 6. (6 ) #include BB(int i=0,int j=1) { a=i; b=j;} BB operator +(BB c) { BB d; d.a=a + c.a*10; d.b=b+c.b*10; return d;} BB operator -(BB c) { BB d; d.a=a * c.a; d.b=b*c.b; return d;} void show() {cout<<'('< void main() { BB x(2,6) , y(5, 5),z; z=x+y; z.show(); z=x-y; z.show(); } 7. (7) #include EX(int i=0,int j=1) { x=i; y=j;} EX operator * (EX z) { EX d; d.x=x *z.x; d.y=y*z.y; return d;} EX operator /(EX c) { EX d; d.x=x-c.x; d.y=y-c.y; return d;} void show() {cout<<'('< void main() { EX a(30,10) , b(2,5),c; c=a*b; c.show(); c=a/b; c.show(); } 8. (8) #include Point(){x=1;y=1;} ~Point(){cout<<\}; void main() { Point a; } 9. (9) #include { int x,y; public: Point(){ x=1; y=1;count++;} ~Point(){count--;} }; void display() { cout <<\} void main()