14. 在保护继承中,基类中的公 有成员、保护 成员是可见的。
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
个参数。
30. 若多个基类及其派生类中都定义了同名函数成员,要访问相应函数时,就需要在函数
名前加上基类名和类区分符。
31. 若要保证一个公共的基类在派生类中只产生一个基类子对象,则必须都以 virtual
的方式直接继承它。
32. 引进虚基类的根本目的是为了消除二义性。
33. 在每个成员函数中,隐含的第一个参数的参数名为 this
指针 。
三 写出下列程序的运行结果
1.
#include<iostream.h>
#include<string.h>
class A {
char a;
public:
A(char *s) {
a=new char[strlen(s)+1];
strcpy(a,s);
cout<<a<<endl; }