C++ 对‘;的调用没有匹配函数;Gtk::Main::run(窗口(&;)())
我想我对C++有些不了解: 我有以下代码:C++ 对‘;的调用没有匹配函数;Gtk::Main::run(窗口(&;)()),c++,gtk,gtkmm,parentheses,C++,Gtk,Gtkmm,Parentheses,我想我对C++有些不了解: 我有以下代码: #include "window.h" int main(int argc, char* argv[]) { Gtk::Main kit(argc, argv); window win(); Gtk::Main::run(win); return EXIT_SUCCESS; } “window”是从Gtk::window继承的类,构造函数为空。当我试图编译此代码时,出现以下错误: no matching funct
#include "window.h"
int main(int argc, char* argv[]) {
Gtk::Main kit(argc, argv);
window win();
Gtk::Main::run(win);
return EXIT_SUCCESS;
}
“window”是从Gtk::window继承的类,构造函数为空。当我试图编译此代码时,出现以下错误:
no matching function for call to ‘Gtk::Main::run(window (&)())
但是,如果我更改行:
window win();
到
然后代码编译。括号的存在/不存在如何改变事情?我以前遇到过这种情况,从来都不知道发生了什么。发生了什么事?因为windowwin()
是一个函数的声明,该函数不带参数并返回一个窗口
。(因此出现错误,表示没有对窗口(&)(
)进行匹配调用,即该类型。)
这被称为“最烦人的解析。”Oh-wow。这在Java/C背景下有点奇怪。谢谢你的解释。@Jrop:是的,有点黑暗。没问题。
window win;