1.    关于函数模板,描述错误的是(  C
A)    函数模板必须由程序员实例化为可执行的函数模板
B)      函数模板的实例化由编译器实现
C)    一个类定义中,只要有一个函数模板,则这个类是类模板
D)    类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化
2.    下列的模板说明中,正确的是(  A
A)    template <typename T1, typename T2>
B)      template <class T1, T2>
C)    template <class T1; class T2>
D)    template <typename T1; typename T2>
3.    假设有函数模板定义如下:
Template <typename T>
Max(T a, T b, T &c)
{ c=a+b; }
下列选项正确的是(  A
A)    float x,y; float z;  Max(x,y,z);
B)      int x,y,z; Max(x,y,x+y+z);
C)    int x,y; float z; Max(x,y,z);
D)    float x; int y, z; Max(x,y,z);
4.    关于类模板,下列描述错误的是(  D99999999999999999999999999
A)    一个普通基类不能派生类模板
B)      类模板从普通类派生,也可以从类模板派生
C)    根据建立对象时的实际数据类型,编译器把类模板实例化为模板类
D)    函数的类模板参数须通过构造函数实例化
5.    建立类模板对象的实例化过程为(  C
A) 基类à派生类           B) 构造函数à对象
C) 模板类à对象           D) 模板类à模板函数
6.    C++中,容器是一种(  D
A) 标准类      B) 标准对象           C) 标准函数           D) 标准类模板
99999
7.关于类模板描述不正确的是(B.
A.它的存在不代表一个具体的、实际的类,而是代表一类的类
B.根据它可以定义多个对象
C.它可以使类中的某些数据取任意类型
D.根据它可以产生一系列类
1.下列关于运算符重载不正确的是(  )
  A.运算符重载不能改变运算符的操作数个数
  B.运算符重载不能改变运算符的优先级
  C.运算符重载不能改变运算符的结合性
  D.运算符重载能改变对预定义类型数据的操作方式
  【答案】D
 2.对于重载的运算符>>,它是一个(  )
  A.用于输入的友元函数
  B.用于输入的成员函数
  C.用于输出的友元函数
  D.用于输出的成员函数
  【答案】A
3.在重载一个运算符时,如果其参数表中有一个参数,则该运算符是(  )
  A.一元成员运算符
  B.二元成员运算符
  C.一元友元运算符
  D.选项B和选项C都可能
【答案】D
4.下列运算符中,只能作为类成员函数重载的是(B)。
A+        B.=        C.<<    D.++
5.下列运算符中,不能重载的是(A)。
A.?:    B.+        C.-        D.<=
6.设Atest类的对象且赋有初值,赋值符号已经重载,则语句test B=A;表示(C  )。
A.语法错
B.为对象A定义一个别名
C.将对象A复制给对象B
D.仅说明BA属于同一个类
7、若为类ABC重载前增1运算符++,应在类体中将其声明为(  B )。
A.ABC & operator ++()        B. ABC & operator ++(int)
C.friend ABC & operator ++()    D. friend ABC & operator ++(int)
8.若表达式y@x中,“@”作为成员函数重载的运算符,则表达式还可以表示为:C
A.x.operator@(y)            B.operator@(x,y)
C.y.operator@(x)            D.operator@(y,x)

9、若要重载,则下列各组运算符中必须作为类成员函数重载的是:D
A.+=        B.=<<        C.==<<        D.=[]
10、不能作为重载函数的调用的依据是:C
A.参数个数 
B.参数类型 
C.函数类型 
D.函数名称
11、通过运算符重载,可以改变运算符原有的( A )。
A.操作数类型 
B.操作数个数 
C.优先级 
D.结合性
12、在C++中,用于实现运行时多态性的是( D )
A.内联函数 
B.重载函数 
C.模板函数 
D.虚函数
13、下列关于运算符重载的叙述中,正确的是( B )
A.通过运算符重载,可以定义新的运算符 
B.有的运算符只能作为成员函数重载 
C.若重载运算符+,则相应的运算符函数名是
D.重载一个二元运算符时,必须声明两个形参
14.在下列运算符中,不能重载的是(B)
A. B. sizeof C. new D. delete
3.2 不能用友员函数重载的是(A)
A.= B.== C.<= D.++
15.下列函数中,不能重载运算符的函数是(B)
A.成员函数 B.构造函数 C.普通函数 D.友元函数
16.如果表达式++i*k时中的”++””*”都是重载的友元运算符,则采用运算符函数调用格式,该表达式还可表示为(B)。
Aoperator*(i.operator++(),k)    Boperator*(operator++(i),k)
Ci.operator++().operator*(k)    Dk.operator*(operator++(i))
17.已知在一个类体中包含如下函数原型:VOLUME operator-(VOLUME)const;下列关于这个函数的叙述中,错误的是(B )。
A.这是运算符-的重载运算符函数
B.这个函数所重载的运算符是一个一元运算符
C.这是一个成员函数
D.这个函数不改变数据成员的值
18.在表达式x构造函数可以被重载y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是(C )。
Aoperator+有两个参数,operator*有两个参数
Boperator+有两个参数,operator*有一个参数
Coperator+有一个参数,operator*有两个参数
Doperator+有一个参数,operator*有一个参数
判断题:
1. 重载流操作符<<>> 时,如果第一个参数的类型为ostream istream,那么这个重载函数既可以用于标准输入输出流,也可以用于文件流上。
对,ostream istream是标准输入输出流、文件流、字符串流的基类
2. 在同一个类中,可以定义重载的成员函数 void f(int);virtual void f(int);
错,这属于重复定义
3. 重载运算符<<>>,只能作为友元函数。 
4. 定义类的非成员函数运算符重载,必须将它声明为友元函数。 
5. 赋值运算符只能作为成员函数进行重载。   
6. 用成员函数定义运算符“+”重载,有两个参数。
4.函数重载要求重载的函数必须函数名和原函数一样的。【8
淘宝精品
  【参考答案】
  【8】函数名
填空题
15、在C++语言中,访问一个对象的成员所用的运算符是 11 ,访问一个指针所指向的对象的成员所用的运算符是 12 
16、将x+y中的+运算符用友元函数重载应写为【11 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。