[c++]第四章概念题 | 运算符重载

Posted Joe不看月亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[c++]第四章概念题 | 运算符重载相关的知识,希望对你有一定的参考价值。

c++中不能重载的运算符① .(成员访问运算符)② .*(成员指针访问运算符)③ ::(作用域解析符)④ sizeof(长度运算符)⑤ ?: (三目条件运算符)
 1、下列关于运算符重载的描述中, 正确的是( D   ) 。  A 运算符重载可以改变运算符的操作数的个数  B 运算符重载可以改变优先级和结合性 C  运算符重载可以改变该运算符用于基本类型变量时的含义 D  以上说法都不对
2、下列关于C++运算符函数的返回类型的描述中,错误的是( C )。 A 可以是类类型 B 可以是int类型 C 可以是void类型 D 可以是float类型 (运算必有结果,不能为void)
3、在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是( B )。A. 作为友元函数重载的1元运算符 B. 作为成员函数重载的1元运算符C. 作为友元函数重载的2元运算符 D. 作为成员函数重载的2元运算符
4、下列运算符中, ( A B )运算符在C++中不能重载。A ?: 与 = B -> 与 :: C new 与delete D &与 ()
5、 下列运算符不能用 友元函数 重载的是(  B  ) A + B = C ++ D << 答案解析:那么当把赋值运算符重载为类的友员函数,在程序中执行类对象的赋值语句时,程序就会出现两种矛盾的选择。1、因为它认为类中并没有重载赋值运算符的成员函数,所以它根据C++的规则,会去调用相应的构造函数。2、但是在全局里,我们已经重载了参数类型为此类类型的赋值运算符函数,而这赋值语句刚好和这函数匹配上了,根据C++的规则,也会去调用这函数。
6、为一个类T重载操作符”-”,可以用进行( D )重载。A 成员函数 B 友元函数 C 普通函数 D 三种形式都可以
7、 友元运算符obj1>obj2被C++编译器解释为( A )。 A operator>(obj1,obj2) B >(obj1,obj2) C obj2.operator>(obj1) D obj1.oprator>(obj2) 8、 在表达式x+y*z中,+是作为成员函数重载的运算符, *是作为非成员函数重载的运算符。下列叙述中正确的是( C )。A operator+有两个参数,operator*有两个参数 B operator+有两个参数,operator*有一个参数 C operator+有一个参数,operator*有两个参数 D operator+有一个参数,operator*有一个参数
9、如果表达式a+b中的"+"是作为成员函数重载的运算符, 若采用运算符函数调用格式,则可表示为( A )。 A a.operator+(b) B b.operator+(a) C operator+(a,b) D operator(a+b)
10、关于运算符重载,下列说法正确的是( B )。 A 所有的运算符都可以重载。 B 通过重载,可以使运算符应用于自定义的数据类型。 C 通过重载,可以创造原来没有的运算符。 D 通过重载,可以改变原运算符的语法结构。
11、如果表达式a++中的"++"是作为 普通函数 重载的运算符, 若采用运算符函数调用格式,则可表示为( C )。 A a.operator++() B. operator++(a) C. operator++(a,1) D. operator++(1,a)
12、 如果表达式++a中的"++"是作为 成员函数 重载的运算符,      若采用运算符函数调用格式,则可表示为(  D  )。 A a.operator++(1) B operator++(a) C operator++(a,1) D a.operator++()
13、如果表达式a==b中的"=="是作为T类重载的运算符, 若采用运算符函数调用格式,则可表示为( A )。 A. a.operator==(b) B. b.operator==(a) C. operator==(a,b) D. operator==(b,a)
14、一个程序中数组类Array对象a和整形变量k定义为Array a(2,4);int k;且程序中包含有语句"a(1,2)=++k*3;",则此语句中肯定属于重载操作符的是(A) A. ( ) B. = C. ++ D. *
15、假定M是一个类名,且M中重载了操作符=,可以实现M对象间的连续赋值, 如m1=m2=m3; (m1=m2)=m3; 重载操作符=的函数声明应为( D )。 A. int operaotor=(M); B int M::operator=(); C M M::operator=( ); D M & M::operator=(M);
16、关于流插入运算符<<的重载,下列说法不正确的是( B )。 A. 运算符函数的返回值类型是ostream 。 B. 重载的运算符必须定义为类的成员函数。(友元) C. 运算符函数的第一个参数的类型是ostream 。 D. 运算符函数有两个参数。
17、为类重载T流提取运算符>>,下列声明正确的是( B )。 A. ostream& operator>>(ostream&, T&);     B. istream& operator>>(istream&, T&);   (有引用选引用) C. istream& operator>>(istream&, T ); D. istream operator>>(istream&, T&);
18、对于涉及 动态内存分配 的类T,哪些运算符可以不必重载( C )。A. ( ) B. = C. & D. *


以上是关于[c++]第四章概念题 | 运算符重载的主要内容,如果未能解决你的问题,请参考以下文章

c++复习总结

关于C++运算符重载和友元的概念

一C++基础面试题

C++学习26 运算符重载的概念和语法

使用 C++ 概念重载不同模板类型的运算符

C++ | 运算符重载