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 の質問)。ここでは、メンバーをポインターにすることをお勧めします。それが最善の方法ですか?
備考:
QMutex _mutex
派生Q_OBJECT
クラスで使用すると、正常に動作します。Q_OBJECT
クラスではなく、ここでエラーが発生する理由は何ですか?- 他の言語では、メンバーを一時的として宣言します。実際、私はそれをコピーしたくありません。それを無視するだけの宣言はありますか?
- それとも、代入/コピー演算子を書く方が良いですか?