选择题
若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=( B )。
A、Microsoft Visual Studio 6.0 B、Microsoft Visual Studio 6.0! C、MicrosoftD、Microsoft Visual
关于纯虚函数和抽象类的描述中,错误的是( D )。 A、纯虚函数是一种特殊的虚函数,它没有具体的实现
B、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出 C、抽象类是指具有纯虚函数的类
D、一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类 先加一然后再使用的++运算符的重载形式是( D )。 A、operator ()++ B、operator ++() int C、operator ++() charD、operator ++() 派生类的对象可访问:( A ) A、公有继承的基类公有成员 B、私有继承的基类保护成员 C、私有继承的基类公有成员 D、公有继承的基类私有成员
若派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类(D) A、保护成员或私有成员 B、保护成员 C、公有成员D、私有成员
下列对基类和派生类关系的描述中,错误的是( D )。 A、派生类是基类定义的延续 B、派生类是基类的组合 C、派生类是基类的具体化 D、派生类是基类的子集
下面关于类的成员访问属性的说法中,正确的说法是( A ) A、在类中,未设置访问属性的成员均为私有类型 B、在类中,未设置访问属性的成员均为公有类型 C、在类中,未设置访问属性的成员均为保护类型
D、在类中,未设置访问属性的成员均为不可访问类型 类的析构函数的作用通常是 ( D ) A、一般成员函数 B、对象的初始化
C、类的初始化 D、释放对象占用的资源(空间) 在下列关键字中, 用以说明类中公有成员的是( A )。 A、publicB、protected C、privateD、friend
对于在类中定义的静态数据成员,下面正确的说法是( C )。 A、该类的每个对象中都有一个静态数据成员 B、既可以在类外初始化,也可以在类内初始化 C、在类外进行初始化 D、对象创建时产生
设有基类定义: class Cbase
{ private: int a; protected: int b; public: int c; };
派生类采用何种继承方式可以使成员变量b成为自己的私有成员( A ) A、私有继承 B、保护继承
C、私有、保护、公有均可 D、公有继承
试题2:派生类的对象对它的哪一类基类成员是可以访问的?( A、保护继承的基类的公有成员 B、公有继承的基类的保护成员 C、公有继承的基类的公有成员 D、公有继承的基类的私有成员 有如下程序:
#include
void fun1( ) const {cout<<”fun1”;} protected:
void fun2( ) const {cout<<”fun2”;} public:
void fun3( ) const {cout<<”fun3”;} };
class Derived : protected Base{ public:
void fun4( ) const {cout<<”fun4”;} };
int main(){ Derived obj;
obj.fun1( ); //① obj.fun2( ); //② obj.fun3( ); //③ obj.fun4( ); //④ }
其中没有语法错误的语句是( D)。
A、④ B、① C、③ D、②
C ) 试题4:有如下类定义: class XA{ int x; public:
XA(int n) {x=n;} };
class XB: public XA{ int y; public:
XB(int a,int b); };
在构造函数XB的下列定义中,正确的是( D)。 A、XB::XB(int a,int b):XA(a),XB(b){ } B、XB::XB(int a,int b):x(a),XB(b){ } C、XB::XB(int a,int b):x(a),y(b){ } D、XB::XB(int a,int b):XA(a),y(b) { } 类O定义了私有函数F1。P和Q为O的派生类,定义为class P: protected O{…}; class Q: public O{…}。( A )可以访问Fl。 A、O类内 B、Q类内 C、O的对象 D、P类内 程序如下:
#include
A( ) {cout<<”A”;} };
class B {public:B( ) {cout<<”B”;} }; class C: public A{ B b; public:
C( ) {cout<<”C”;} };
int main( ) {C obj; return 0;} 执行后的输出结果是( A)。
A、ABC B、ACBC、CBA D、BAC
在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是( B ) A、派生类的对象可以初始化基类的引用 B、派生类的对象可以直接访问基类中的成员 C、派生类的对象的地址可以赋给指向基类的指针 D、派生类的对象可以赋给基类的对象
当保护继承时,基类的( B )在派生类中成为保护成员,不能通过派生类的对象来直接访问。
A、任何成员 B、公有成员和保护成员 C、私有成员 D、公有成员和私有成员 下面对派生类的描述中,错误的是( C ) A、派生类至少有一个基类
B、派生类的成员除了它自己的成员外,还包含了它的基类的成员 C、派生类中继承的基类成员的访问权限到派生类中保持不变 D、一个派生类可以作为另外一个派生类的基类 下述静态数据成员的特性中,错误的是( A )。 A、静态数据成员不是所有对象所共用的
B、说明静态数据成员时前边要加修饰符static
C、引用静态数据成员时,要在静态数据成员名前加上<类名>和作用域运算符 D、静态数据成员要在类体外进行初始化
派生类的对象对它的基类成员中( C )是可以访问的 A、公有继承的私有成员B、公有继承的保护成员 C、公有继承的公有成员 D、私有继承的公有成员 C++语言建立类层次结构是通过( D )。
A、抽象类B、类的嵌套 C、虚函数D、类的继承
print函数是一个类的常成员函数,它无返回值,下列表示中正确的是(B )。 A、void const print()B、void print()const C、void print(const) D、const void print() 若类A和类B的定义如下: class A {
int i,j; public:
void get(); //... };
class B: A {
int k; public:
void make(int ); //... };
void B::make(int j) {
k = i*j; }
则上述定义中,非法的表达式是( A )。
A、k=i*j; B、void get();C、int k; D、void make(int )
在多基继承的构造函数定义中,几个基类的构造函数之间用( A )分隔。 A、, B、; C、: D、::
在下列各函数中, 不是类的成员函数的是( D )。
A、拷贝构造函数B、析构函数 C、构造函数D、友元函数 对于任意一个类,析构函数的个数有( D )。 A、不确定B、2C、0D、1
在C++程序中,对象之间的相互通信通过( A )。
A、调用成员函数实现 B、函数重载实现 C、继承实现D、封装实现 下列有关类的说法不正确的是( C )。 A、类是一种用户自定义的数据类型
B、只有类中的成员函数才能存取类中的私有数据
C、在类中,如果不作特别说明,所有的成员函数均为公有类型 D、在类中,如果不作特别说明,所有的数据均为私有类型
类中定义的各个成员需要设置被访问的权限,以下给出的关键字中,( D )不能用于限定成员的访问权限。
A、publicB、protected C、privateD、extern 在下列函数中,( B )不能重载。
A、非成员函数 B、析构函数 C、构造函数 D、成员函数 构造函数的功能是( B )
A、建立对象并初始化成员函数B、建立对象并初始化数据成员 C、为类的实例分配存储空间 D、为类名分配存储空间 下列关于对象的描述不正确的是( A )。
A、现实世界中的一切事物都可以看作对象,但只有在具体的系统中加以论述才有实际的意义
B、对象可以描述任何东西 C、对象的属性是对象的静态特征,服务是动态特征,并且对象的属性只能由本对象的服务来操作
D、对象具有属性和服务两个主要因素 对于一个C++的类( D )
A、可有一个构造函数和多个析构函数 B、只能有一个构造函数和一个析构函数 C、可有多个构造函数和多个析构函数 D、可有多个构造函数和一个析构函数 关于析构函数,以下说法正确的是( D )
A、当对象调用了构造函数之后,立即调用析构函数
B、析构函数与构造函数的唯一区别是函数名前加波浪线~,因此,析构函数也可以重载 C、类中定义了构造函数,就必须定义析构函数,否则程序不完整,系统无法撤消对象 D、定义类时可以不说明析构函数,此时系统会自动产生一个缺省的析构函数 关于构造函数,以下正确的说法是( C )
A、构造函数没有返回值,因为系统隐含指定它的返回值类型为void
B、无参构造函数和参数为缺省值的构造函数符合重载规则,因此这个类中可以含有这两种构造函数
C、对象一经说明,首先调用构造函数,如果类中没有定义构造函数,系统会自动产生一个不做任何操作的缺省构造函数
D、定义类的成员时,必须定义构造函数,因为创建对象时,系统必定要调用构造函数 执行以下程序后,输出结果依次是( C )