一、名词解释
1、多态性 2、构造函数 3、继承性 4、友元
二、填空
1、类的三大基本特性__________、__________、__________。
2、C++语言的函数参数传递方式有__________。
3、含有虚函数的类称为__________,含有纯虚函数的类为__________,为克服重复继承的二义性,用__________声明的基类称为虚基类,用__________声明函数称为虚函数。
4、在含有对象成员的派生类中,构造函数的调用次序,基类的构造函数对象成员的构造函数,派生类的构造函数的调用次序?
5、派生类对基类继承控制访问有三种__________。
三、单项选择
1、那个不是C++的基本数据类型( )。
2、C++语言中有哪些存放在动态存储区。 ( )
3、下面对于指针的描述不正确的是( )。
A、指针是地址变量 B、指针不能用除0以外的常量赋值
C、两个指针变量的加减法无意义 D、指针指向不同基类型的变量长度不同
4、下面对于析构函数的描述中不正确的是( )。
A、析构函数是内置函数 B、析构函数与类名相同
C、析构函数不能有参数 D、析构函数在对象撤销时自动执行
5、下列指针用法中错误的是( )。
A、int i; int *ptr=&i; B、int i; int *ptr; i=*ptr;
C、int *ptr; ptr=0; D、int i=5; int *ptr; *ptr=i;
6、派生类的对象对它的基类成员中什么是可访问的( )。
A、公有继承的公有成员 B、公有继承的私有成员
C、公有继承的保护成员 D、私有继承的公有成员
四、简答
1、什么是多重继承的名字冲突?怎样解决多重继承的名字冲突?
2、说明C++系统保留字Protected的用法。
3、什么是抽象类?抽象类有什么特点?
五、分析下列程序,写出结果
1、#include
int g=1;
void disp( )
{
int i=1;
static int s=1;
cout<<"g="< cout<<"i="< cout<<"s="< g=g+1;i=i+1;s=s+1;
}
int main()
{
while(g disp;
return 0;
}
2、#include
class AAA{
int A,B;
public:
AAA(int i,int j)
{A=i,B=j;
cout<<"C\n";
}
~AAA(){cout<<"D\n";}
void print( )
{
void AAA::print( )
{cout< void main()
{
AAA *a1,*a2;
a1=new AAA(1,2)
a2=new AAA(5,6)
a1->print();
a2->print();
delete a1;
delete a2;
}
3、#include
class b1{
public:
b1(int x)
{cout<A\n";}
~b1()
{cout<<"B\n";}
};
class b2{
public:
b2(int x)