单项选择题(每题2分,共10道,共20分)
1.下面关于类概念的描述中,______是错误的。
类是抽象数据类型的实现
类是具有共同行为的若干对象的统一描述体
类是创建对象的样板
类就是C语言中的结构体类型
系统在调用重载函数是往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是______。
A.参数个数B.参数的类型
C.函数名称
D.函数的类型
3.______是给对象取一个别名,它引入了对象的同义词。
A.指针 B. 引用 C. 枚举 D. 结构
4.______是析构函数的特征。
一个类中只能定义一个析构函数
析构函数的作用是为了初始化对象
析构函数的定义只能在类体内
析构函数可以有一个或多个参数
5.下列引用的定义中,______是错误的。
A.int i; int &j=i;
B.int i; int &j; j=i;
C.float i; float &j=i;
D.char d; char &k=d;
6.一个类的友元函数能够访问该类的____________。
A.私有成员B. 保护成员
C.公有成员D. 所有成员
7.下面关于new 和delete操作符的说法,是不正确的A.使用new操作符,可以动态分配全局堆中的内存资源。B.若p的类型已由A*强制转换为void *,那么执行语句delete p;时,类A的析构函数不会被调用。C.实现全局函数时,new和delete通常成对地出现在由一对匹配的花括号限定的语句块中。D.执行语句A *p=new A[100];时,类A的构造函数只会被调用1次。函数表示编译器一定会将函数体直接插入到调用此函数的地方,这样可以加快程序的运行速度。说明类中的public、protected和private成员函数分别在public、protected和private继承方式下在派生类中的可访问性。”n=”<
}
int CSample::k=0;
void main()
{
CSample a(10),b(20),c(30);
a.disp( );
b.disp( );
c.disp( );
}
2. 阅读下面类的定义,找出程序中的错误,并说明错误原因。
#include
class Sample
{
public:
Sample(int a=0,b=1);
disp( );
private:
int x,y;
};
Sample::Sample(int a=0,int b=1)
{
x=a;y=b;
}
void Sample::disp( )
{
cout<
}
分析下面程序,写出该程序的功能和运行结果。
#include
template
class Sample
{
T n;
public:
Sample( ){ }
Sample(T i){n=i;}
Sample & operator+(const Sample &);
void disp( ){cout<
};
template
Sample & Sample::operator+(const Sample &s)
{
static Sample temp;
temp.n=n+s.n;
return temp;
}
void main()
{
Sample s1(10),s2(20),s3;
s3=s1+s2;
s3.disp( );
}
分析下面程序,写出运行结果。
#include
class A
{
public:
A( ){cout<
A(int i){x1=i;cout<
void dispa() {cout<
private:
int x1;
};
class B:public A
{
public:
B( ){cout<
B(int i):A(i+10){x2=i;cout<
void dispb(){dispa();cout<
private:
int x2;
};
void