所以我有一个问题......
我有一个方法
void MainWindow :: loadItems(const ArticleStore& store)
{
}
我试着在MainWindow类中调用这样的字母
ArticleStore store();
loadItems(存储)
我得到了这个错误
mainwindow.cpp:15:错误:没有匹配函数调用'MainWindow :: loadItems(ArticleStore(&)())'
mainwindow.h:19:注意:候选者是:void MainWindow :: loadItems(const ArticleStore&)
ArticleStore定义:
class ArticleStore
{
市民:
ArticleStore();
};
所以问题是出了什么问题?
答案 0 :(得分:8)
这是因为
ArticleStore store();
编译器将解释为函数声明。
这就解释了为什么编译器正在寻找‘MainWindow::loadItems(ArticleStore (&)())’
你必须写:
Article store; // With no parenthesis
答案 1 :(得分:1)
ArticleStore store; loadItems(store);
注意名称后面缺少括号。编译器将您的版本误认为是名为store的函数的函数原型,不带任何参数并返回ArticleStore
实例。然后将此函数指针传递给下一个不起作用的函数。