我正在尝试为Xlib库创建一个包装类,但是我遇到了分段错误!我是C ++的新手,这可能超出了我的深度,也许我的目标设定得很高,除了那个问题,有人能说出我为什么会出现这种分段错误吗?
source file
header file
main.cpp
我相信这是我得到的回溯:
Program received signal SIGSEGV, Segmentation fault.
In XMapWindow () (/usr/lib/libX11.so.6)
At /home/elliot/Programming/C and C++/XWindows/src/MyWindow.cpp:49
答案 0 :(得分:3)
您的错误表示display
的{{1}}或window
参数不正确。
您需要在代码中添加更多错误检查,特别是调用XMapWindow()
和XOpenDisplay
的结果。
我能看到的唯一明显错误是您将XCreateWindow
标记传递给CWBackPixel
,但未将XCreateWindow
参数保留为未初始化。与普通C不同,C ++在声明结构时不会清除结构的内存内容。
编辑 - 我当然错过了一个非常明显的错误 - 你无意中重新声明了构造函数中的所有类成员变量。那将是你的范围问题。您需要从构造函数中的所有赋值中删除类型名称,例如:
attributes