我想知道是否有办法在函数之前声明一个类,然后在函数内部初始化它,如下所示:
Application.h:
class Application
{
Application(HWND hwnd);
~Application() {}
};
Main.cpp的:
#include "Application.h"
#include <Windows.h>
Application App;
int main()
{
App(hwnd);
return 0;
}
答案 0 :(得分:1)
Application *pApp;
int main()
{
pApp = new Application(hwnd);
//use pApp
delete pApp;
return 0;
}
使用指针几乎是做你想做的事情的唯一方法。
答案 1 :(得分:0)
您无法在函数内初始化全局对象,在调用程序的main函数之前的某个时间将调用该对象的构造函数。这是非常糟糕的,它涉及静态初始化惨败的事情,你想避免它。尝试在C ++中搜索单例模式实现,这可能是你需要的。
答案 2 :(得分:0)
在C ++中,对象的构造函数在分配了它的存储时被调用,你不能像以前那样调用构造函数。
您可能考虑不定义构造函数,并使用单独的成员函数(例如init
)来初始化App对象。
Application.h:
class Application
{
public:
void init(HWND hwnd);
};
Main.cpp的:
#include "Application.h"
#include <Windows.h>
Application App;
int main()
{
App.init(hwnd);
return 0;
}