我设置了两个类,InputFile
并且InputStream
. 两者都继承QObject
,并使用Q_OBJECT
宏初始化。
InputFile
包含 a QMap<int,InputStream*>
,创建InputStream
对象并将它们插入到QMap
.
InputStream
使用显式构造函数初始化,然后像这样插入到地图中:
InputStream myStream = InputStream(this, *myParameter);
_myMap.insert(myInt, *myStream);
编译器返回一些关于我的插入调用的错误:
/opt/Qt5.5.0/5.5/gcc/include/QtCore/qobject.h:461: error: 'QObject::QObject(const QObject&)' is private
Q_DISABLE_COPY(QObject)
^
/home/myusername/Documents/Projects/MyProject/inputfile.cpp:17: error: no match for 'operator*' (operand type is 'InputStream')
_myMap.insert(myInt, *myStream);
^
然后我尝试初始化InputStream
为指针:
InputStream *myStream = InputStream(this, *myParameter);
在这种情况下,编译器会返回以下错误:
/home/myusername/Documents/Projects/MyProject/inputfile.cpp:16: error: cannot convert 'InputStream' to 'InputStream*' in initialization
InputStream *myStream = InputStream(this, *myParameter);
^
我也尝试&
在插入调用中使用引用 (),但这仍然返回第一个错误。
如何根据需要初始化我的对象并将其插入到我的QMap
?