itgle.com

下面关于自定义类的运算符重载的说法中,正确的是()。A.类友元形式重载的运算符,重载函数中的this指针指向第一个运算数B.类友元形式重载的运算符,重载函数中可以直接访问类中的私有成员C.类友元形式重载的运算符,重载函数的参数个数与运算符的实际操作数个数相同D.所有运算符都可以以类友元形式进行重载

题目

下面关于自定义类的运算符重载的说法中,正确的是()。

A.类友元形式重载的运算符,重载函数中的this指针指向第一个运算数

B.类友元形式重载的运算符,重载函数中可以直接访问类中的私有成员

C.类友元形式重载的运算符,重载函数的参数个数与运算符的实际操作数个数相同

D.所有运算符都可以以类友元形式进行重载


相似考题
更多“下面关于自定义类的运算符重载的说法中,正确的是()。”相关问题
  • 第1题:

    下列关于运算符重载的描述中,错误的是( )。

    A.可以通过运算符重载在C++中创建新的运算符

    B.赋值运算符只能重载为成员函数

    C.运算符函数重载为类的成员函数时,第一操作就是该类对象

    D.重载类型转换运算符时不需要声明返回类型


    正确答案:A
    解析:运算符的重载是针对C++中原有运算符进行的,不能通过重载创造新的运算符。

  • 第2题:

    下面关于自定义类的运算符重载的说法中,正确的是()。

    A.类友元形式重载的运算符,重载函数的参数个数与运算符的实际操作数个数相同

    B.类友元形式重载的运算符,重载函数中的this指针指向第一个运算数

    C.类友元形式重载的运算符,重载函数中可以直接访问类中的私有成员

    D.所有运算符都可以以类友元形式进行重载


    正确答案:AC

  • 第3题:

    Java语言具有的操作是 ( )

    A.自定义类

    B.运算符重载

    C.多重继承

    D.指针操作


    正确答案:A
    解析:Java语言可以自定义类,选项A是正确的;它不可以运算符重载;Java只允许单继承,如果想多继承可以定义接口实现;Java中没有指针操作,所以本题选择A。

  • 第4题:

    下列关于运算符重载的叙述中,正确的是

    A.运算符重载为成员函数时,若参数表中无参数,则重载的是一元运算符

    B.一元运算符只能作为成员函数重载

    C.二元运算符重载为非成员函数时,参数表中有一个参数

    D.C++中可以重载所有的运算符


    正确答案:C
    解析:C++进行运算符重载时,“.”、“::”、“*”、“sizeof”等运算符不能重载,单目运算符和双目运算符既可以作为成员函数重载,也可以作为友元函数重载。

  • 第5题:

    下列关于运算符重载的说法中,不正确的是( )。

    A.重载不能改变运算符的优先级,但可以通过加括号的方式改变其计算顺序

    B.重载不能改变运算符的结合律和操作数的个数

    C.能够创建新的运算符,并非只有现有的运算符才能被重载

    D.运算符重载不能改变运算符用于内部类型对象时的含义,它只能和用户自定义的类型的对象一起使用,或者用于用户自定义类型的对象和内部类型的对象混合使用时


    正确答案:C
    解析:只有该选项不正确,其他都正确,只能对现有的运算符重载。

  • 第6题:

    在重载运算符函数时,下面( )。运算符必须重载为类成员函数形式。

    A.+

    B.-

    C.++

    D.->


    正确答案:D

  • 第7题:

    关于运算符重载,下列说法正确的是( )。

    A.所有的运算符都可以重载。

    B.通过重载,可以使运算符应用于自定义的数据类型。

    C.通过重载,可以创造原来没有的运算符。

    D.通过重载,可以改变运算符的优先级。


    正确答案:B

  • 第8题:

    下列关于运算符重载的描述中,错误的是()。

    • A、运算符重载不改变优先级
    • B、运算符重载后,原来运算符操作不可再用
    • C、运算符重载不改变结合性
    • D、运算符重载函数的参数个数与重载方式有关

    正确答案:B

  • 第9题:

    下列关于运算符重载的描述中,正确的是()。

    • A、运算符重载可以改变操作数的个数
    • B、运算符重载可以改变运算符的优先级
    • C、运算符重载可以改变运算符的结合性
    • D、运算符重载可以使运算符实现特殊功能

    正确答案:D

  • 第10题:

    单选题
    下列描述中,关于c++说法正确的是()
    A

    所有的运算符号都可以重载。不能重载的运算符只有4个,作用域运算符:’::’,成员解引用运算符:’.*’,成员访问运算符:’.’,条件运算符:’?:’

    B

    基类类型的指针可以指向子类,子类类型的指针也可以指向基类

    C

    可以在类的构造函数中对静态数据成员进行初始化

    D

    动态联编要满足两个条件:被调用的成员函数是虚函数;用指针或引用调用虚函数


    正确答案: D
    解析: 暂无解析

  • 第11题:

    单选题
    下列关于运算符重载的描述中,正确的是(  )。
    A

    运算符重载可以改变运算符的操作数的个数

    B

    运算符重载可以改变优先级

    C

    运算符重载可以改变结合性

    D

    运算符重载不可以改变语法结构


    正确答案: A
    解析:
    C++语言中规定,重载的运算符仍要保持其原来的操作数、优先级和结合性不变。

  • 第12题:

    单选题
    下列关于运算符重载的叙述中,正确的是(  )。
    A

    通过运算符重载机制可以为c++语言扩充新的运算符

    B

    运算符重载的作用是使已有的运算符作用于类的对象

    C

    重载运算符的操作数类型可以全部为基本类型

    D

    所有运算符都可以被重载


    正确答案: C
    解析:
    运算符重载就是赋予已有的运算符多重含义。通过重新定义运算符,使它能够用于特定类的对象执行特定的功能,这便增强了C++语言的扩充能力。运算符重载要注意以下3点:①不能重载的运算符包括“.”、“.*”、“->”、“::”、“?:”;②必须重载为成员函数的运算符包括“[]”,“()”,“->”,“=”;③在类成员函数中重载运算符是不允许返回引用的,会出现“返回局部变量的地址”警告。

  • 第13题:

    下面运算符中,不能被重载的运算符是

    A:<=

    B: -

    C: ?:

    D: []


    正确答案: C

  • 第14题:

    下列关于运算符重载的描述中,错误的是( )。A.可以通过运算符重载在C++中创建新的运算符

    下列关于运算符重载的描述中,错误的是( )。

    A.可以通过运算符重载在C++中创建新的运算符

    B.赋值运算符只能重载为成员函数

    C.运算符函数重载为类的成员函数时,第一操作参数就是该类对象

    D.重载类型转换运算符时不需要声明返回类型


    正确答案:A
    A。【解析】运算符的重载是针对C++中原有运算符进行的,不能通过重载创造新的运算符。

  • 第15题:

    下列关于运算符重载的叙述中,正确的是

    A.通过运算符重载,可以定义新的运算符

    B.有的运算符只能作为成员函数重载

    C.若重载运算符+,则相应的运算符函数名是+

    D.重载一个二元运算符时,必须声明两个形参


    正确答案:B
    解析:一般运算符重载可以采用成员函数方式或友元方式。但成员运算符(.),指向成员的指针,作用域运算符(::),条件运算符(?:)只能采用成员函数方式;重载运算符(+),对应的运算符函数名是operator+();重载一个二元运算符时,只需声明一个形参,左操作数毋须用参数输入,而是通过隐含的this指针传入。

  • 第16题:

    下面关于运算符重载的描述中,正确的是( )。

    A.一元运算符只能作为成员函数来重载

    B.运算符重载作为成员函数时,如果参数表中无参数,重载的是一元运算符

    C.二元运算符重载为非成员函数时,参数表中有一个参数

    D.C++中可以重载所有的运算符


    正确答案:B
    解析:一元运算符可以作为全局函数重载,所以选项A) 错误。二元运算符重载为非成员函数时,参数表中有两个参数,所以选项C)也错误。C++中有些运算符不能被重载,如域运算符(::),条件运算符(?:)等,具体哪些运算符不能被重载与编译器有关,所以选项D) 错误。

  • 第17题:

    在重载运算符函数时,下面运算符必须重载为类的成员函数的是( )。

    A.+

    B.-

    C.++

    D.->


    正确答案:D
    解析:=(),[],->运算符不能够重载为类的友元函数。

  • 第18题:

    下面关于运算符重载中正确的是( )

    A.运算符函数的返回类型不能声明为基本数据类型

    B.C++的所有运算符都可以重载

    C.在类型转换符函数的定义中不需要声明返回类型

    D.通过运算符重载可以定义C++中没有的运算符


    正确答案:C
    解析:运算符函数的返回类型可以声明为基本数据类型,故选项A) 错误。“.、.*、->*、::、?”这五个运算符不可以重载,故选项B) 错误。在重载类型转换符时,由于运算符本身已经表示出返回值类型,因此不需要返回值类型的声明。运算符重载是针对C++中已有的运算符进行的,不可能通过重载创造出新的运算符,故选项D) 错误。

  • 第19题:

    下面关于运算符重载中正确的是( )。

    A.运算符函数的返回类型不能声明为基本数据类型

    B.C 的所有运算符都可以重载

    C.在类型转换符函数的定义中不需要声明返回类型

    D.通过运算符重载可以定义C 中没有的运算符


    正确答案:C

  • 第20题:

    下列关于运算符重载的描述中,()是正确的。

    • A、运算符重载可以改变运算数的个数
    • B、运算符重载可以改变优先级
    • C、运算符重载可以改变结合性
    • D、运算符重载不可以改变语法结构

    正确答案:D

  • 第21题:

    单选题
    下列关于运算符重载的描述中,()是正确的。
    A

    运算符重载可以改变运算数的个数

    B

    运算符重载可以改变优先级

    C

    运算符重载可以改变结合性

    D

    运算符重载不可以改变语法结构


    正确答案: C
    解析: 暂无解析

  • 第22题:

    单选题
    下列关于运算符重载的描述中,错误的是(  )。
    A

    可以通过运算符重载在C++中创建新的运算符

    B

    赋值运算符只能重载为成员函数

    C

    运算符函数重载为类的成员函数时,第一操作数是该类对象

    D

    重载类型转换运算符时不需要声明返回类型


    正确答案: B
    解析:
    运算符重载是针对C++中原有运算符进行的,不能通过重载创造新的运算符。

  • 第23题:

    单选题
    下列关于赋值运算符“=”重载的叙述中,正确的是(  )。
    A

    赋值运算符只能作为类的成员函数重载

    B

    默认的赋值运算符实现了“深层复制”功能

    C

    重载的赋值运算符函数有两个本类对象作为形参

    D

    如果已经定义了复制(拷贝)构造函数,就不能重载赋值运算符


    正确答案: C
    解析:
    A项正确,赋值运算符“=”只能作为成员函数重载;B项错误,默认的运算符只实现了“浅层赋值”,若要实现“深层复制”,必须重载赋值运算符;C项错误,默认的赋值操作就是同类对象之间对应成员的逐一赋值,而常见的真正需要重载赋值运算符的情况是:类中包含指向动态空问的指针;D项错误,一个类如果需要重载运算符=,通常也就需要定义自己特有的复制构造函数,反之亦然。

  • 第24题:

    单选题
    下列关于运算符重载的描述中,错误的是()。
    A

    运算符重载不改变优先级

    B

    运算符重载后,原来运算符操作不可再用

    C

    运算符重载不改变结合性

    D

    运算符重载函数的参数个数与重载方式有关


    正确答案: B
    解析: 暂无解析