【发布时间】:2015-08-04 10:42:36
【问题描述】:
我有一个 Qt 项目,我有一个对象,它会被复制很多时间。因此,我想添加移动语义。
#ifndef OBJECTTOCOPY_H
#define OBJECTTOCOPY_H
#include <QColor>
#include <QString>
#include <QDataStream>
namespace level_1 {
namespace level_2 {
class ObjectToCopy {
public:
explicit ObjectToCopy(const QString& _name = "", const QColor& colorBody = QColor() );
// MOVE
ObjectToCopy(ObjectToCopy && other);
static quint32 _valueInt32;
static quint16 _valueInt16;
QString _name;
QColor _colorBody;
private:
};
}
}
#endif // OBJECTTOCOPY_H
如何窃取成员变量的指针,因为它们不是指针?
ObjectToCopy::ObjectToCopy (ObjectToCopy&& other)
: _valueInt32( other._valueInt32 )
, _valueInt16( other._valueInt16 )
, _name( other._name )
, _colorBody( other._colorBody )
{
other._valueInt32 = 0;
other._valueInt16 = 0;
other.name.clear();
other._colorBody = QColor();
}
- 这对非指针有意义吗?
- 可以像 string.clear() 那样重置 QString 吗?为垃圾收集器标记它?
- 如何重置 QColor 对象?
【问题讨论】:
标签: qt c++11 qt5 move move-semantics