我有一个没有默认构造函数的名为 MainWindow
的类。我有一个名为 Application
的类,它的构造函数使用 MainWindow
的实例作为参数。我得到一个
Error C2512, "no appropriate default constructor available"
在类 Application 的构造函数的定义中。
构造函数代码如下:
Application::Application(HINSTANCE hInstance, MainWindow mainWindow) {...}
我正在像这样创建 Application
的实例:
MainWindow window(1000, 1000, false, "test");
Application program(Instance, window);
为什么会出现此错误?我没有尝试使用默认构造函数创建 MainWindow 的新实例。
最佳答案
似乎类 Application 有一个无法创建的 MainWindow 类型的数据成员。否则不清楚为什么类Application的构造函数有参数MainWindow mainWindow
。我认为它用于将其分配给类的数据成员。
您可以使用 ctor-initializer。例如,如果 Application 类确实有一个 MainWindow 类型的数据成员(将其命名为 m_window),那么您可以按以下方式编写构造函数
Application::Application(HINSTANCE hInstance, MainWindow mainWindow) : m_window( mainWindow )
{
//...
}
关于C++ 错误 C2512 : no appropriate default constructor available,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23028691/