gpt4 book ai didi

c++ - 没有匹配的调用函数(期望引用指针而不是指针)

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:03:07 30 4
gpt4 key购买 nike

我从 xcode (3.2.4)/gcc(4.0) 得到错误:

/Users/admin/scm/audacity/mac/../src/toolbars/DeviceToolBar.cpp: In member function 'void DeviceToolBar::ShowInputDialog()':
/Users/admin/scm/audacity/mac/../src/toolbars/DeviceToolBar.cpp:817: error: no matching function for call to 'DeviceToolBar::ShowComboDialog(wxChoice*&, wxString)'
/Users/admin/scm/audacity/mac/../src/toolbars/DeviceToolBar.h:74: note: candidates are: void DeviceToolBar::ShowComboDialog(wxChoice*, wxString&)

所以看起来它希望引用 ShowComboDialog 中的指针,但我不知道为什么,因为签名显然是普通指针。此外,如果它期望以我调用的方式引用指针,它应该可以工作。这是第一个错误,之前没有特别警告。

另外,这在 MSVC 2008 express 中编译。请给我一个线索。

//in the class def
//(only relevant portions included
class DeviceToolBar:public ToolBar {

public:
DeviceToolBar();
virtual ~DeviceToolBar();
void ShowInputDialog();
private:
void ShowComboDialog(wxChoice *combo, wxString &title);

wxChoice *mInput;
};

//in the cpp file
void DeviceToolBar::ShowInputDialog()
{
ShowComboDialog(mInput, wxString(_("Select Input Device")));
}

void DeviceToolBar::ShowComboDialog(wxChoice *combo, wxString &title)
{
//...
}

最佳答案

问题不在于第一个参数;这是第二个。您正在传递一个临时的 wxString,但该函数需要一个引用。 C++ 会自动将临时变量转换为 const 引用,但它无法将其转换为引用。您需要使 ShowComboDialog 将常量引用作为其第二个参数。

关于c++ - 没有匹配的调用函数(期望引用指针而不是指针),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4839639/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com