首页 > 解决方案 > 使用 C++ 复制构造函数初始化基类;并使用复制运算符返回对左值的引用

问题描述

我是一名 C 程序员,现在正在尝试编写 C++,我想就以下几点谈谈您的看法:

HelpField 类(描述将在 QML 中显示的帮助页面中的一个字段)。

这时候,这个类可以总结如下:

class HelpField : public QObject
{
    Q_OBJECT
    int type ; // 0: text, 1: image fileName (jpg or png)
    QString value ;
public:
    HelpField() : type {0}, value { "" } {}
    HelpField(int t, QString v) : type {t}, value { v } {}
    HelpField(const HelpField &v) : QObject(v.parent()) {
        type=v.type;
        value=v.value;
    }
    HelpField &operator=(const HelpField &v) {
        type=v.type;
        value=v.value;
        return *this;
    }
};

我特别想听听您对显式调用父类构造函数的看法:

    HelpField(const HelpField &v) : QObject(v.parent()) {

并且复制运算符返回对该类的引用:

    return *this;

这是正确的做法吗?为什么?或者为什么不呢?在此先感谢您的帮助。

标签: c++constructor

解决方案


推荐阅读