我有一个名为MainWindow
的类,它没有默认的构造函数。我有一个名为Application
的类,它的构造函数使用MainWindow
实例作为参数。我得到了一个
Error C2512, "no appropriate default constructor available"
在类应用程序构造函数的定义中。
下面是构造函数的代码:
Application::Application(HINSTANCE hInstance, MainWindow mainWindow) {...}
我创建的Application
实例如下:
MainWindow window(1000, 1000, false, "test");
Application program(Instance, window);
为什么我会有这个错误?我不想用默认构造函数创建MainWindow的新实例。
发布于 2014-04-12 09:49:44
类应用程序似乎有一个MainWindow类型的数据成员,无法创建。否则,还不清楚为什么类应用程序的构造函数具有参数MainWindow mainWindow
。我认为它被用来将它分配给类的数据成员。
你可以用ctor-初始化器。例如,如果类应用程序确实具有MainWindow类型的数据成员(让将其命名为m_window),则可以使用以下方式编写构造函数
Application::Application(HINSTANCE hInstance, MainWindow mainWindow) : m_window( mainWindow )
{
//...
}
发布于 2014-04-12 15:35:29
如果问题不是MainWindow类成员,那么应用程序类有一个构造函数,该构造函数按值接受MainWindow参数。为了做到这一点,它必须创建一个窗口的副本,如果您没有复制构造函数,编译器可能正在寻找某种方法来创建这个副本。尝试:
应用程序::Application(hInstance hInstance,MainWindow &mainWindow) {.}
https://stackoverflow.com/questions/23028691
复制相似问题