我有一个派生QList<MyClass>
,有一个成员QMutex
。
class WaypointList : public QList<Waypoint> {
private:
mutable QMutex _mutex; /*!< Mutex for thread safety */
..
} // HERE COMPILE ERROR, in this line
编译,我得到C2248: 'QMutex::operator =' : cannot access private member declared in class 'QMutex'
原因是QMutex
不可复制(Q_DISABLE_COPY
相关的SO Question)。这里建议将成员设为指针。这是最好的方法吗?
评论:
- 当我
QMutex _mutex
在派生Q_OBJECT
类中使用时,它工作正常。知道为什么我在这里得到错误而不是在Q_OBJECT
课堂上吗? - 在其他语言中,我将成员声明为瞬态。其实我不想复制它。是否有忽略它的声明?
- 还是编写赋值/复制运算符是更好的方法?