A如果在重定义虚函数时使用virtual,则该重定义函数仍然是虚函数B虚函数不得声明为静态函数C虚函数不得声明为另一个类的友元函数D派生类必须重新定义基类的虚函数7、关于纯虚函数和抽象类的描述中,错误的是()。A纯虚函数是一种特殊的虚函数,它没有具体的定义B抽象类是指具有纯虚函数的类C抽象类只能作为基类来使用,其纯虚函数的定义由派生类给出D一个基类中说明有纯虚函数,该基类的派生类只有实现了基类的所有纯虚函数,才可以用派生类来定义对象。8、下列描述中,是抽象类的特征的是()。A可以说明虚函数B可以进行构造函数的重载C可以定义友元函数D不能定义其对象9、抽象类应该有()。A至少一个虚函数B至多一个虚函数C至多一个纯虚函数D至少一个纯虚函数10、关于虚函数的说法正确的是()。A基类的虚函数可为派生类继承,继承下来仍为虚函数B虚函数重定义时必须保正其返回值和参数个数及类型与基类中的一致C虚函数必须是一个类的成员函数,不能是友元,也不能是静态函数,但可以作为其他类的友元D析构函数和构造函数都可是虚函数,都可被继承二、填空题1、C++中的多态性可以分为4类:、、和。前面两种统称为,而后面两种统称为。2、向上类型转换是指。3、多态从实现的角度来讲可以划分为两类:和。4、虚函数的声明方法是在函数原型前加上关键字。5、如果一个类包含一个或多个纯虚函数,则该类为。第6章面向对象的妥协
一、选择题1、下面关于友元的描述中,错误的是()。A友元函数可以访问该类的私有数据成员。B一个类的友元类中的成员函数都是这个类的友元函数。C友元可以提高程序的运行效率。D类与类之间的友元关系可以继承。2、友元访问类的对象的成员时使用()A类的成员名Bthis指针指向成员名C“类名::成员名”的形式D“对象名.成员名”的形式3、已知类A是类B的友元,类B是类C的友元,则()。A类A一定是类C的友元B类C一定是类A的友元C类C的成员函数可以访问类B的对象的任何成员D类A的成员函数可以访问类B的对象的任何成员4、下面对静态数据成员的描述中,正确的是()。A静态数据成员是类的所有对象共享的数据B类的每个对象都有自己的静态数据成员C类的不同对象有不同的静态数据成员值D静态数据成员不能通过类的对象调用二、填空题1、友元可以访问与其有好友关系的类中的。友元包括和。2、声明友元的关键字是。3、类的静态成员包括和。4、静态数据成员是在时被分配空间的,到时才释放空间。第7章运算符重载
一、选择题1、下列运算符中,下列哪个运算符在C++中不能重载()。A&&B[]C::Dnew2、下列关于运算符重载的描述中,正确的是()。A运算符重载可以改变操作数的个数B运算符重载可以改变优先级C运算符重载可以改变结合性D运算符重载不可以改变语法结构3、在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是()。Aoperator+有两个参数,operator*有两个参数Boperator+有两个参数,operator*有一个参数Coperator+有一个参数,operator*有两个参数Doperator+有一个参数,operator*有一个参数4、在下列成对的表达式中,运算符“+”的意义不相同的一对是()。A5.0+2.0和5.0+2B5.0+2.0和5+2.0C5.0+2.0和5+2D5+2.0和5.0+2.5、下列关于运算符的重载叙述正确的是()。A通过运算符重载,可以定义新的运算符B有的运算符只能作为成员函数重载C若重载运算符+,则相应的运算符函数名是+D重载一个二元运算符时,必须声明两个形参6、如果表达式++i*k中的“++”和“*”都是重载的友元运算符,若采用运算符函数调用格式,则表达式还可以表示为()。Aoperator*(i.operator++(),k)Boperator*(operator++(i),k)Ci.operator++().operator*(k)Dk.operator*(operator++(i))7、已知在一个类体中包含如下函数原型:VOLUMEoperator-(VOLUME)const;下面关于这个函数叙述错误的是()。A这是运算符-的重载运算符函数B这个函数所重载的运算符是一个一元运算符C这是一个成员函数D这个函数不改变类的任何数据成员的值8、下列关于运算符的重载说法不正确的是()。A它可以是成员函数B它可以是友元函数C它既不是成员函数也不是友元函数D它只能是成员函数二、填空题1、运算符的重载是对的运算符赋予多重含义,导致不同行为,定义重载运算符函数的关键字是。2、要在类的对象上使用运算符,除了运算符和外,都须被重载。3、C++中不能被重载的运算符有、、、、。4、重载不改变运算符的、、。5、对双目运算符,被重载为成员函数时,有参数,被重载为友元函数时,有参数。第8章模板
一、选择题1、关于模板函数与函数模板的说法正确的是()。A其实质是一样的,只是说法不同B两者的形参类型是一样的C模板函数是模板的实例化D函数模板是模板函数的实例化2、模板的使用实际上是将类模板实例化成一个()。A函数B对象C类D抽象类3、类模板的模板参数()。A只可作为数据成员的类型B只可作为成员函数的返回类型C只可作为成员函数的参数类型D以上三者均可4、模板的参数()。A可以有多个B不能是基本数据类型C可以是0个D参数不能给初值5、template
一、选择题1、在程序中要进行文件的输出,除了包含iostream头文件外,还要包含头文件()。AifsteamBfstreamCostreamDcstdio2、执行下列语句:char*str;cin>>str;cout< 一、选择题1、下列关于异常的说法错误的是()。A编译错属于异常,可以抛出B运行错属于异常C硬件故障也可以当异常抛出D只要编程者认为是异常的都可以当异常抛出2、下面描述错误的是()。Athrow语句须书写在try语句块中Bthrow语句必须在try语句块中直接运行或通过调用函数运行C一个程序中可以有try语句没有throw语句Dthrow语句抛出的异常可以不被逮捕3、关于函数声明floatfun(inta,intb)thow(),下列叙述正确的是()。A表明函数抛出float类型异常B表明函数抛出任何类型异常C表明函数不抛出任何类型异常D表明函数实际抛出的异常4、下列叙述错误的是()。Acatch(…)语句可以捕获所有类型的异常B一个try语句可以有多个catch语句Ccatch(…)语句可以放在catch语句组的中间D程序中try语句与catch语句是一个整体,缺一不可5、用来抛弃异常的语句块是()。Acatch语句块Btry语句块Cthrow语句块Dabort语句块6、程序当中没有与被抛弃的数据类型相匹配的catch语句块时,则系统调用的函数是()。