cout<<”false”<}
(3)C++程序是从【3】函数开始执行的。
(4)假定A为一个类,则语句A(A&A)为该类【4】。
(5)派生类构造函数的执行顺序是先执行【5】的构造函数.然后执行成员对象的构造函数,最后执行【6】的构造函数。
(6)类模板不同于函数模板类模板只可用【6】型函数。
(7)下列程序的执行结果为【7】。
#include(iostream.h>
voidmain()
{
Cout.fill(’*’);
cout.width(10);
cout<<”hello”<}
三、简答题
1、多态类和抽象类的区别;它们的基类和派生类的定义实现代码要求有何不同。
2、析构函数的概念、多态性。
3、C++语言的五种数据类型的长度。
4、对重载函数的调用依据、不依据什么?
5、protected的用法。
6、<<、>>的功能,在什么类中定义?
什么叫流?
7、构造函数的作用?
8、在类外定义构造函数语法格式:
9、classTime
{public:
Time()
{hour=0;
minute=0;
sec=0;
}
10、在类外定义构造函数?
11、带有形参的构造函数首部的一般格式为:
12、以Box∷Box(inth,intw,intlen)为例//在类外定义带参数的构造函数
{height=h;
width=w;
length=len;
}
用参数初始化表对数据成员初始化的一般格式为:
13、构造函数的重载?
14、使用默认参数的构造函数的好处?
15、析构函数的作用及其定义的的一般格式为:
16、假设要创建三个对象s1,s2,s3,并且在使用完毕后进行释放,其构造函数和析构函数被调用的顺序为:
C++面向对象程序设计练习题(3)
一、名词解释
1、多态性 2、构造函数
二、填空
1、类的三大基本特性__________、__________、__________。
2、C++语言的函数参数传递方式有__________。
3、含有虚函数的类称为__________,含有纯虚函数的类为__________,为克服重复继承的二义性,用__________声明的基类称为虚基类,用__________声明函数称为虚函数。
4、在含有对象成员的派生类中,构造函数的调用次序,基类的构造函数对象成员的构造函数,派生类的构造函数的调用次序?
5、派生类对基类继承控制访问有三种__________。
三、单项选择
1、那个不是C++的基本数据类型( )。
2、C++语言中有哪些存放在动态存储区。
( )
3、下面对于指针的描述不正确的是( )。
A、指针是地址变量 B、指针不能用除0以外的常量赋值
C、两个指针变量的加减法无意义 D、指针指向不同基类型的变量长度不同
4、下面对于析构函数的描述中不正确的是( )。
A、析构函数是内置函数 B、析构函数与类名相同
C、析构函数不能有参数 D、析构函数在对象撤销时自动执行
5、下列指针用法中错误的是( )。
A、inti;int*ptr=&i; B、inti;int*ptr;i=*ptr;
C、int*ptr;ptr=0; D、inti=5;int*ptr;*ptr=i;
6、派生类的对象对它的基类成员中什么是可访问的( )。
A、公有继承的公有成员 B、公有继承的私有成员
C、公有继承的保护成员 D、私有继承的公有成员
四、简答题
1、什么是多重继承的名字冲突?
怎样解决多重继承的名字冲突?
2、说明C++系统保留字Protected的用法。
3、什么是抽象类?
抽象类有什么特点?
4、C++语言的结束标志、语句结束标志、语句块结束标志、类定义结束标志。
5、隐式类型转换的概念。
6、类成员重载和友元重载的区别。
五、分析下列程序,写出结果
1、#include
intg=1;
voiddisp()
{
inti=1;
staticints=1;
cout<<"g="< cout<<"i="<
cout<<"s="<
g=g+1;i=i+1;s=s+1;
}
intmain()
{
while(g
disp;
return0;
}
2、#include
classAAA{
intA,B;
public:
AAA(inti,intj)
{A=i,B=j;
cout<<"Cn";
}
~AAA(){cout<<"Dn";}
voidprint()
{
voidAAA:
:
print()
{cout< voidmain()
{
AAA*a1,*a2;
a1=newAAA(1,2)
a2=newAAA(5,6)
a1->print();
a2->print();
deletea1;
deletea2;
}
3、#include
classb1{
public:
b1(intx)
{cout<An";}
~b1()
{cout<<"Bn";}
};
classb2{
public:
b2(intx)
{cout<Cn";}
~b2()
{cout<<"Dn";}
}
classderived:
publicb