|

类MyClass的定义如下:
class MyClass
{
public:
MyClass() { value = 0;}
SetVariable(int i) { value = i; }
private:
int value;
}
则对下列语句序列正确的描述是()。
MyClass *p,my; p=my;
A:语句p=my;是把对象my赋值给指针变量p
B:语句MyClass *p,my;会调用两次类MyClass的构造函数
C:对语句 *p.SetVariable(5)的调用是正确的
D:语句p-gt;SetVariable(5)与语句my.SetVariable(5)等价
用于类中虚成员函数说明的关键字( )。
A:virtual
B:public
C:protected
D:private
下列程序段中具有相同值的是( ) class Base {int b;}; class Base1:virtual public base{int b1;}; class Base2:virtual public base{int b2;}; class derived:public base 1,public base 2{int b3;}; derived d;
A:d.b与d.base1::b
B:d.base1::b与 d.base1::b1
C:d.b与 d. b3
D:d.base2::b与 d.base2::b2
建立类模板对象的实例化过程为( )。
A:基类->派生类
B:构造函数->对象
C:模板类->对象
D:模板类->模板函数
假定MyClass为一类,执行MyClass a,b(2),*p[2];语句时会自动调用该类构造函数()次。
A:2
B:3
C:4
D:5
对定义重载函数的下列要求中,( )是错误的。
A:要求参数的个数不同
B:要求参数中至少有一个类型不同
C:要求参数个数相同时,参数类型不同
D:要求函数的返回值不同
可以用p.a的形式访问派生类对象p的基类成员a其中a是( )。
A:私有继承的公有成员
B:公有继承的私有成员
C:公有继承的保护成员
D:公有继承的公有成员
派生类的对象对它的基类成员中()是可以访问的。
A:公有继承的公有成员
B:公有继承的私有成员
C:公有继承的保护成员
D:私有继承的公有成员
在类定义的外部,可以被访问的成员有( )。
A:所有类成员
B:private或protected的类成员
C:public的类成员
D:public或private的类成员
下面关于类概念的描述中,( )是错误的。
A:类是抽象数据类型的实现
B:类是具有共同行为的若干对象的统一描述体
C:类是创建对象的样板
D:类就是C语言中的结构体类型
派生类的构造函数的成员初始化列表中,不能包含()。
A:基类的构造函数
B:派生类中子对象的初始化
C:基类的子对象初始化
D:派生类中一般数据成员的初始化
友元关系不能( )。
A:继承
B:是类与类之间是关系
C:是一个类的成员函数与另一个类的关系
D:提高程序的运行效率
下面对友元的错误描述是( )。
A:关键字friend用于声明友元
B:一个类的成员函数可以是另一个类的友元
C:友元函数访问对象的成员不受访问特性影响
D:友元函数通过this指针访问对象成员
空类的声明( )是正确的。
A:class类名;
B:class类名{};
C:class类名{}
D:class类名
以下为重载函数的一组函数声明的是()。
A:void print(int); void print(double);
B:void fun(int); int fun(int);
C:int max(int,int); int min(int,int);
D:void mm(); int mm();
友元重载运算符obj1gt;obj2被C 编译器解释为()。
A:operatorgt;(obj1,obj2)
B:gt;(obj1,obj2)
C:obj1.operatorgt;(obj2)
D:obj2.operatorgt;(obj1)
下面对模板的声明,正确的是( )。
A:A.template<T>
B:template<class T1,T2>
C:template<class T1,class T2>
D:template<classT1;classT2>
建造新的派生类是( )的实质。
A:派生
B:抽象
C:继承
D:封装
this指针是C 实现( )的一种机制。
A:抽象
B:封装
C:继承
D:重载
( )是析构函数的特征。
A:析构函数可以有一个或多个参数
B:析构函数定义只能在类体内
C:析构函数名与类名不同
D:一个类中只能定义一个析构函数
在一个C 源文件中使用了cin和cout,那么在这个源文件中必须包含()文件。
A:iostream
B:fstream
C:stdio.h
D:stdlib.h
类A是类B的友元,类B是类C的友元,则( )是正确的。
A:类B是类A的友元
B:类C是类A的友元
C:类A是类C的友元
D:以上都不对
一个类的友元函数能够访问该类的( )。
A:私有成员
B:保护成员
C:公有成员
D:所有成员
若类A和类B的定义如下: class A { int i,j; public: void get(); }; class B:A//默认为私有派生 { int k; public; void make(); }; void B:: make() { k=i*j; } 则上述定义中,()是非法的表达式。
A:void get();
B:int k;
C:void make();
D:k=i*j;
( )的功能是对对象进行初始化。
A:析构函数
B:数据成员
C:构造函数
D:静态数据成员
不同的对象可以调用相同名称的函数,并可导致完全不同的行为的现象称为( )。
A:多态性
B:抽象
C:继承
D:封装
已知“int a=10;int r=a; r=r 20;coutlt;lt;a;”,则输出为()。
A:10
B:20
C:30
D:不确定值
下列表示引用的方法中,( )是正确的。 已知:int k=1000;
A:int x=k;
B:char y;
C:int z=1000;
D:float t=k;
在使用类创建对象时,系统会自动调用该对象的()完成对象中数据成员的初始化等操作。
A:友元函数
B:虚函数
C:构造函数
D:析构函数
下列类中( )是输入/输出流类iostream的派生类。
A:fstream
B:ofstream
C:ifstream
D:ostream
结构化程序设计方法以()为中心进行分析和设计。
A:结构
B:模块
C:对象
D:类
静态数据成员初始化在()进行,而且前面不加static,以免与一般静态变量或对象相混淆。
A:类体内
B:类体外
C:构造函数内
D:内联函数内
要求打开文件 d:\file.dat,可写入数据,正确的语句是( )。
A:ifstream infile("d:\file.dat", ios::in);
B:ifstream infile("d:\\file.dat", ios::in);
C:ofstream infile("d:\file.dat", ios::out);
D:fstream infile("d:\\file.dat", ios::in| ios::out);
下列静态数据成员的特性中,( )是错误的。
A:说明静态数据成员时前边要加关键字static来修饰
B:静态数据成员在类体外进行初始化
C:引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符
D:静态数据成员不是所有对象所共有的
声明一个类的对象时,系统自动调用( )函数。
A:成员函数
B:构造函数
C:析构函数
D:普通函数
一个类的构造函数中可以不包含对其子对象的初始化。
A:对
B:错
虚基类是用来解决多继承中公共基类在派生类中产生多份基类成员的问题。
A:对
B:错
C语言中printf命令在c 中改用cin。
A:对
B:错
默认形参值应在函数定义处指定。
A:对
B:错
调试主要是为了解决程序运行时产生的错误。
A:对
B:错
一个抽象类的派生类可以用于创建对象。
A:对
B:错
派生类中至少包含了它的所有基类的成员(除构造函数和析构函数外),在这些成员中可能有的是不可访问。
A:对
B:错
通过指针或引用可以调用不同对象相同名称的函数,但可导致完全不同的行为的现象称为二义性。
A:对
B:错
含有纯虚函数的类是抽象类。
A:对
B:错
int *p=new int[5];表示为指针变量p分配了一个int型元素空间,并将该片内存空间的值初始化为5。
A:对
B:错
派生类是从基类派生出来,它不能再生成新的派生类。
A:对
B:错
重载的运算符保持原来的优先级和结合性以及操作数的个数。
A:对
B:错
在面向对象程序设计中,每个对象可以单独设置属性值。
A:对
B:错
类中所提供的成员函数可以直接访问该类的私有成员。
A:错误
B:正确
假定用户没有给一个名为AB的类定义析构函数,则系统自动给出的缺省析构函数定义为~AB(){ }。
A:对
B:错
|
|