class Hello : public QObject
{
    Q_OBJECT
    // textという名称のプロパティを宣言
    Q_PROPERTY(QString text READ getText WRITE setText NOTIFY textChanged)

private:
    // メンバ変数
    //Qt 5.1以降ではこのようにMEMBERを用意するとgetter/setter関数が自動で作られる
    //Q_PROPERTY(QString text MEMBER _text NOTIFY textChanged)
    QString _text;

signals:
　　// シグナルは宣言のみで実装はしない
    void textChanged();

public:
    Hello();
    virtual ~Hello();

    // READで宣言した関数を実装
    QString getText();
    // WRITEで宣言した関数を実装
    // 数値型であればconstや&は必要ない
    void setText(const QString &text);
};