itgle.com

解决二义性问题的方法有A: 只能使用作用域分辨操作符B: 使用作用域分辨操作符或赋值兼容规则C: 使用作用域分辨操作符或虚基类D: 使用虚基类或赋值兼容规则

题目

解决二义性问题的方法有

A: 只能使用作用域分辨操作符

B: 使用作用域分辨操作符或赋值兼容规则

C: 使用作用域分辨操作符或虚基类

D: 使用虚基类或赋值兼容规则


相似考题
更多“解决二义性问题的方法有A: 只能使用作用域分辨操作符B: 使用作用域分辨操作符或赋值兼容规则C: 使用作用域分辨操作符或虚基类D: 使用虚基类或赋值兼容规则”相关问题
  • 第1题:

    对于搜索方法说法正确的是()。

    A.使用空格表示“与”的概念

    B.使用“-”表示“非”的概念

    C.操作符与作用的关键字之间不能有空格

    D.大写的“OR”表示“或”的概念


    参考答案:A, B, C, D

  • 第2题:

    下列关于虚基类的描述中,错误的是

    A.使用虚基类可以消除由多继承产生的二义性

    B.构造派生类对象时,虚基类的构造函数只被调用一次

    C.声明“class B:virtual public A”说明类B为虚基类

    D.建立派生类对象时,首先调用虚基类的构造函数 .


    正确答案:C
    解析:虚基类主要解决在多重继承时,基类可能被多次继承的问题,虚基类提供了一个基类给派生类。class B:virtual public:A中很明显B继承了虚基类A,所以选项c)错误。

  • 第3题:

    一个类可以同时继承多个类,称为多继承。下列关于多继承和虚基类的表述中,错误的是______ 。

    A.每个派生类的构造函数都要为虚基类构造函数提供实参

    B.多继承时有可能出现对基类成员访问的二义性问题

    C.使用虚基类可以解决二义性问题并实现运行时的多态性

    D.建立派生类对象时,虚基类的构造函数会首先被调用


    正确答案:C
    解析:虚基类不能解决二义性的问题。

  • 第4题:

    下列有关变量的描述中不正确的是( )。

    A.变量属性是用来描述变量作用域的

    B.局部变量作用域只能是它所在方法的代码段

    C.类变量能在类的方法中声明

    D.类变量的作用域是整个类


    正确答案:C
    解析:类变量在类中声明,作用域是整个类,它不能在类的方法中声明。局部变量在类的方法中声明,作用域只能是它所在的方法中。

  • 第5题:

    下列是关于继承的说法,正确的是______。

    A.子类继承父类,子类就拥有了父类的全部成员,包括基类的构造函数和析构函数

    B.当子类继承父类后,子类可以访问父类的全部成员

    C.抽象类不能被继承

    D.派生类可能含有与基类同名的数据成员或同名同参数的成员函数,因此可能产生二义性。C++采用将当前类作为默认作用域的方法来消除二义性。若要在派生类中访问基类的成员,则必须使用作用域运算符“::”指定所使用的成员的类名


    正确答案:D
    解析:当子类继承父类后,子类可以访问父类中除私有成员外的全部成员。父类的构造函数和析构函数是不能被子类继承的。在C++中,当子类有多个基类时,调用基类构造函数的格式为:派生类名>::派生类名>(参数表):基类名1>参数表1>,基类名2>参数表2>…,{派生类构造函数体;}在Java中,在创建子类对象时若希望对父类中的成员变量进行初始化,就要在于类构造方法中利用super()调用父类的构造方法,并且必须将这条语句作为子类构造方法中的第一条语句。抽象类是含有抽象函数或抽象方法的类,它不能被实例化,但是可以被继承。实际上,抽象类主要就是用来派生子类。当派生类含有与基类同名的数据成员或同名同参数的成员函数时,可能产生二义性。C++采用将当前类作为默认作用域的方法来消除二义性。若要在派生类中访问基类的成员,则必须使用作用域运算符“::”指定所使用的成员的类名。

  • 第6题:

    下面叙述错误的是( )。

    A.派生类可以使用private派生

    B.对基类成员的访问必须是无二义性的

    C.基类成员的访问能力在派生类中维持不变

    D.赋值兼容规则也适用于多继承的组合


    正确答案:C

  • 第7题:

    虚析构函数的作用是()

    • A、虚基类必须定义虚析构函数
    • B、类对象作用域结束时释放资源
    • C、delete动态对象时释放资源
    • D、无意义

    正确答案:C

  • 第8题:

    下面说法或者语句不符合公司编程规范的排版要求的是()

    • A、逗号、分号只在后面加空格;比较操作符,赋值操作符"="、"+=",算术操作符"+"、"%",逻辑操作符"&&"、"&",位域操作符"<<"、"^"等双目操作符的前后加空格;"!"、"~"、"++"、"--"、"&"(地址运算符)等单目操作符前后不加空格
    • B、如果语句已足够清晰则括号内侧(即左括号后面和右括号前面)不需要加空格,多重括号间不必加空格,因为在Java语言中括号已是最清晰的标志了
    • C、较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读
    • D、if,for,do,while等语句的执行语句如果只有一行的话,不需要要加括号{}

    正确答案:D

  • 第9题:

    若需要定义一个类域或类方法,应使用()修饰符。

    • A、static
    • B、package
    • C、private
    • D、public

    正确答案:A

  • 第10题:

    在某子类的Click事件中,要调用其父类的Init事件代码时,应该使用()。

    • A、NODEFAULT命令
    • B、DODEFAULT()函数
    • C、作用域操作符::
    • D、This.ParentClass.Init语句

    正确答案:C

  • 第11题:

    单选题
    下面叙述不正确的是()
    A

    派生类一般都用公有派生

    B

    对基类成员的访问必须是无二义性的

    C

    赋值兼容规则也适用于多重继承的组合

    D

    基类的公有成员在派生类中仍然是公有的


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

  • 第12题:

    单选题
    虚析构函数的作用是()
    A

    虚基类必须定义虚析构函数

    B

    类对象作用域结束时释放资源

    C

    delete动态对象时释放资源

    D

    无意义


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

  • 第13题:

    解决类继承中产生的二义性的方法不包括

    A.使用作用域运算符限定访问的成员函数

    B.在派生类中定义同名函数,且参数表必须和基类的保持一致

    C.在派生类中定义同名函数,且参数表可以和基类的不同

    D.采用虚基类解决多重继承中的共同基类产生的二义性


    正确答案:C
    解析:继承中的二义性主要表现在多重继承中具有多条继承路径时,派生类中行为的不确定性。如果强制指定了按照某条路径访问,亦即采用域作用符限定访问的成员函数的方法可以解决之,故选项A排除。在选项B和C中,唯一的区别在于参数表是否一致,我们知道:参数表不一致同名函数属于重载,是不存在二义性问题的,故选项C是正确答案。关于选项D,虚基类是C++中解决二义性的一种有效手段。

  • 第14题:

    下列描述中错误的是( )。

    A.派生类可以使用private派生

    B.对基类成员访问必须是无二义性的

    C.赋值兼容规则也适合于多继承

    D.基类和派生类中存在同名函数,将出现二义性


    正确答案:D
    解析:基类和派生类存在同名函数,符合支配规则,不存在二义性。

  • 第15题:

    下列关于变量作用域的描述中,不正确的是( )。

    A.变量属性是用来描述变量作用域的

    B.局部变量作用域只能是它所在方法的代码段

    C.类变量能在类的方法中声明

    D.类变量的作用域是整个类


    正确答案:C
    解析:类变量在类中声明,作用域是整个类,它不能在类的方法中声明。局部变量在类的方法中声明,作用域只能是它所在的方法。

  • 第16题:

    解决类继承中产生的二义性的方法不包括

    A.使用作用城运算符限定访问的成员函数

    B.在派生类中定义同名函数,且参数表必须和基类的保持一致

    C.在派生类中定义同名函数,且参数表可以和基类的不同

    D.采用虚基类解决多重继承中的共同基类产生的二义性


    正确答案:C
    解析:继承中的二义性主要表现在多重继承中具有多条继承路径时,派生类中行为的不确定性。如果强制指定了按照某条路径访问,亦即采用域作用符限定访问的成员函数的方法可以解决之,故选项A排除。在选项B和C中,唯一的区别在于参数表是否一致,我们知道:参数表不一致同名函数属于重载,是不存在二义性问题的,故选项C是正确答案。关于选项D,虚基类是C++中解决二义性的一种有效手段。

  • 第17题:

    重载赋值操作符时,应声明为 ______ 函数。

    A.友元

    B.虚

    C.成员

    D.多态


    正确答案:C

  • 第18题:

    JavaScript中的赋值操作符不包含()

    • A、++
    • B、+=
    • C、-=
    • D、=

    正确答案:A

  • 第19题:

    对于循环操作,可以使用()。

    • A、ALT操作符
    • B、LOOP操作符
    • C、片段
    • D、框架

    正确答案:B

  • 第20题:

    若需要定义一个类域或类方法,应使用哪种修饰符()

    • A、static
    • B、package
    • C、private
    • D、public

    正确答案:A

  • 第21题:

    静态成员都可以使用类名加作用域运算符的方法来引用。


    正确答案:正确

  • 第22题:

    单选题
    下面说法或者语句不符合公司编程规范的排版要求的是()
    A

    逗号、分号只在后面加空格;比较操作符,赋值操作符=、+=,算术操作符+、%,逻辑操作符&&、&,位域操作符<<、^等双目操作符的前后加空格;!、~、++、--、&(地址运算符)等单目操作符前后不加空格

    B

    如果语句已足够清晰则括号内侧(即左括号后面和右括号前面)不需要加空格,多重括号间不必加空格,因为在Java语言中括号已是最清晰的标志了

    C

    较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读

    D

    if,for,do,while等语句的执行语句如果只有一行的话,不需要要加括号{}


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

  • 第23题:

    单选题
    在某子类的Click事件中,要调用其父类的Init事件代码时,应该使用()。
    A

    NODEFAULT命令

    B

    DODEFAULT()函数

    C

    作用域操作符::

    D

    This.ParentClass.Init语句


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