前言
一个类继承自 QObject ,在重写拷贝构造时提示这样一个警告。
头文件:
class ScoreInfo : public QObject
{
Q_OBJECT
public:
explicit ScoreInfo(QObject *parent = nullptr);
ScoreInfo(QString id, QString name, int score, QObject *parent = nullptr);
ScoreInfo( const ScoreInfo &info );
ScoreInfo &operator=( const ScoreInfo &info );
QString id();
QString name();
int score();
private:
QString m_id;
QString m_name;
int m_score;
};
实现代码:
ScoreInfo::ScoreInfo(const ScoreInfo &info)
{
m_id = info.m_id;
m_name = info.m_name;
m_score = info.m_score;
}
解决方法
在实现类的代码中调用 QObject 基类的构造函数即可:
ScoreInfo::ScoreInfo(const ScoreInfo &info) : QObject( nullptr ) // 在这里调用
{
m_id = info.m_id;
m_name = info.m_name;
m_score = info.m_score;
}