问题 单项选择题

下列关于多继承.二义性的描述中,错误的是( )。

A) 一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性。
B) 解决二义性的最常用的方法是对成员名的限定法
C) 基类和派生类中同时出现的同名函数,也存在二义性问题
D) 一个派生类是从两个基类派生出来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,可能出现二义性

答案

参考答案:C

解析: 本题考核多继承中出现的二义性问题。在多重继承的情况下,派生类具有两个以上的直接基类,而这些直接基类的一部分或全部又是从另一个共同基类派生而来时,这些直接基类中从上一级继承来的成员就拥有相同的名称。在派生类的对象中,这些同名成员在内存中同时有多个复制件,所以派生对这些同名成员的访问存在二义性。所以选项A和D的说法是正确的。
解决二义性的方法有两种:一是使用作用域分辨符来惟一标识并分别访问它们:二是可以将共同基类设置为虚基类。而第一种方法最常用。所以选项B的说法是正确的。
基类和派生类中同时出现同名函数,符合支配规则,不存在二义性问题。所以选项 C的说法不正确。

问答题 简答题
单项选择题