房天下 > 房天下问答 > 业主生活 > 其他
  • C++:分别用隐藏规则或虚基类解决1-2-1型函数中二义性问题。

    分别用隐藏规则或虚基类解决1-2-1型函数中二义性问题。C++中的题目。希望能写出做题思路,以及解决过程和调试结果。

    提问者:manners_0

    发布于2010-12-13

共1个回答
  • 春平网络 丨Lv 1
    虚基类解决二义性问题在派生类中对基类成员的访问应该是惟一的。但是,在多继承情况下,可能造成对基类中某个成员的访问出现了不惟一的情况,这时就称对基类成员的访问产生了二义性。 产生二义性问题主要有两种情况,其类结构如图11-2所示: 解决二义性问题主要要三种方法: (1) 通过作用域运算符(::)明确指出访问的是哪一个基类中的成员。使用作用域运算符进行限定的一般格式是: <对象名>.<基类名>::<成员名> //数据成员 <对象名>.<基类名>::<成员名>(<参数表>) //成员函数 (2) 在类中定义同名成员。定义同名成员可以解决二义性问题的主要原因是支配规则在起作用。支配规则如下: 类X中的成员N支配类Y中同名的成员N是指类X以类Y为它的一个基类。如果一个名字支配另一个名字,则二者之间不存在二义性,当使用该成员时,使用支配者中的成员。 (3) 虚基类。 在解决二义性问题时要注意: (1) 一个类不能从同一个类中直接继承一次以上。 (2) 二义性检查在访问控制权限或类型检查之前进行,访问控制权限不同或类型不同不能解决二义性问题。 参考文献:
    +1 2010-12-14 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。