【发布时间】:2012-02-23 12:37:26
【问题描述】:
我正在尝试在父类中声明一个静态类并对其进行初始化,但我似乎遇到了各种错误。
/* MainWindow.h */
class MainWindow
{
private:
static DWORD WINAPI threadproc(void* param);
static MainWindow *hWin;
};
/* MainWindow.cpp */
#include "MainWindow.h"
void MainWindow::on_pushButton_clicked()
{
HANDLE hThread = CreateThread(NULL, NULL, threadproc, (void*) this, NULL, NULL);
WaitForSingleObject(hThread, INFINITE);
CloseHandle(hThread);
}
DWORD WINAPI MainWindow::threadproc(void* param)
{
hWin = (MainWindow*) param;
//Be able to access stuff like hWin->run();
return 0;
}
我尝试过使用MainWindow::hWin = (MainWindow*) param; 和MainWindow::hWin = new MainWindow((MainWindow*) param)); 以及许多其他方法,但似乎都没有。这样做的正确方法是什么?有没有人可以推荐关于这个主题的任何资源,我已经纠结了几天class 问题并且非常沮丧。
【问题讨论】:
-
你得到什么错误信息?
-
C++ 中没有静态类。 (您拥有的是静态数据成员。)
标签: c++ class static initialization redefinition