如何在GCC C ++中消除函数调用的歧义?

时间:2014-06-24 21:57:33

标签: c++ gcc disambiguation

我收到以下错误警告:

reference to 'selectionMode' is ambiguous
candidates are: virtual KFile::SelectionMode KFileView::selectionMode() const
                virtual KFile::SelectionMode selectionMode() const;

电话如下:

    return KFileIconView::selectionMode();

如何消除呼叫的歧义,以便引用第一个或第二个变体(我认为第二个是正确的变体)?

更新

我目前通过使用以下内容替换调用来修复构建:返回KFileIconView :: KFileView :: selectionMode(); 我认为这会选择第一个候选者。如果第一个候选人是第二个候选人,我该如何选择?

1 个答案:

答案 0 :(得分:2)

您必须使用范围解析运算符来消除这些功能的歧义。

从课堂外调用KFileView :: selection模式:

KFileView view;
view.selectionMode();

::selectionMode();用于从KFileView实现中调用全局函数。

KFileView::selectionMode();用于从KFileView实现中调用成员函数。