gpt4 book ai didi

c++ - 在 C++ 类中初始化静态数据成员(类)

转载 作者:行者123 更新时间:2023-11-30 02:05:42 25 4
gpt4 key购买 nike

我试图在父类中声明一个静态类并对其进行初始化,但我似乎遇到了各种错误。

/* 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 问题纠结了几天,非常沮丧。

最佳答案

静态成员总是由声明定义 组成,您的cpp 文件中缺少定义。将以下行放在任何函数之外:

MainWindow* MainWindow::hWin;

您可以阅读更多 herehere .

关于c++ - 在 C++ 类中初始化静态数据成员(类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9413218/

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