Tôi có một lớp là lớp con của QObject mà tôi muốn đăng ký làm loại meta. Các QObject documentation nói rằng các nhà xây dựng bản sao nên được tư nhân, nhưng QMetaType documentation nói rằng một loại nên có một nhà xây dựng mặc định công cộng, một xây dựng bản sao công cộng, và một destructor công cộng.Lớp con của QObject, qRegisterMetaType và hàm tạo bản sao riêng
Tôi có thể ghi đè lên hàm tạo bản sao riêng tư của QObject và khai báo hàm tạo bản sao công khai, nhưng đây có phải là an toàn/ok/phải không?
class MyClass : public QObject {
Q_OBJECT
public:
MyClass();
MyClass(const MyClass &other);
~MyClass();
}
Q_DECLARE_METATYPE(MyClass);
Con đường tôi đã kết thúc đi là sử dụng QSharedPointer (Qt 4.5 trở lên). Q_DECLARE_METATYPE (QSharedPointer) –
darkadept