gpt4 book ai didi

c++ - 没有合适的默认构造函数可用

转载 作者:行者123 更新时间:2023-11-30 01:45:17 27 4
gpt4 key购买 nike

我正在尝试为不带参数的“Control”类使用构造函数,但是当我尝试创建它的实例时,我收到一条错误消息“没有合适的默认构造函数可用”

这是我的标题:

class Control
{
public:
Control();

private:
Layout activeLayout;

void createLayout();
void moveWindow(HWND hWnd, int X, int Y, int nWidth, int nHeight, std::string windowTitle);
void mainLoop();
};

#endif

我的cpp文件:

 Control::Control()
{
Detector mainDetector();

createLayout();
mainLoop();
}

以及我尝试调用讲师的地方:

int _tmain(int argc, _TCHAR* argv[])
{
Control mainControl();

system("PAUSE");

return 0;
};

最佳答案

注意

Detector mainDetector();

是函数声明,不是 Control 类型变量的定义。当没有参数时语法是

Detector mainDetector;

有些情况下,局部函数的声明会被推断出来,即使它看起来不可能......这被称为 C++ 的“the most vexing parse”规则。

一个简单的例子是:

double pi = 3.141592654;
int int_pi(int(pi));

令人惊奇的是,int_pi 被声明为一个函数!

关于c++ - 没有合适的默认构造函数可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34836190/

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