我有一个类_PDevice,它在PDevice.cpp中实现并在PDevice.h中声明
另外,在PDevice.h中,我添加了:
typedef QSharedPointer<_PDevice> DDevice;
现在,还有另一个继承_PDevice
的类QLDeviceQLDevice也有一名公众成员:
QFile* m_file;
在另一个文件Control.h中,我声明了:
DDevice m_device;
在Control.cpp文件中,我添加了一个方法:
m_device = DDevice(new QLDevice(filePath));
这在QLDevice构造函数中设置m_file:
m_file = &filePath;
在此之后,当我尝试调用m_file-&gt; close()时,它会在QXDM.exe中的0x740DCB49处抛出错误&#34; 未处理的异常:0xC0000005:访问冲突执行位置0x00000000 &# 34;
像这样:
if (m_file == NULL)
m_lastError = FCLOSE_NULL_ERR;
else
m_file->close();
我不明白我在哪里弄错了。
一切顺利,直到我调用m_file-&gt; close()
请有人帮我解决这个问题。
答案 0 :(得分:0)
scala> val foo : PartialFunction[AnyRef, Unit] = {
| case arg => println(s"arg = $arg")
| }
foo: PartialFunction[AnyRef,Unit] = <function1>
scala> foo()
<console>:13: error: not enough arguments for method apply: (v1: AnyRef)Unit in trait Function1.
Unspecified value parameter v1.
foo()
此成员未初始化,因此您应该检查它的创建位置以及调用适当的初始化方法。