클래스내 함수의 값을 바꾸는 것에 대한 질문입니다.

eunhyeon의 이미지

http://doc.trolltech.com/3.3/listviews-example.html 에 있는 예제를 사용하여, 목록을 출력해주는 프로그램을 작성하고 있습니다.

class MessageHeader
{
public:
    MessageHeader( const QString &_name, const QString &_src, const QString &_result, const QDateTime &_datetime )
        : mname( _name ), msrc( _src), mresult( _result ), mdatetime( _datetime )
    {}
 
    MessageHeader( const MessageHeader &mh );
    MessageHeader &operator=( const MessageHeader &mh );
 
    QString name() { return mname; }
    QString result() { return mresult; }
    QString src() { return msrc; }
    QDateTime datetime() { return mdatetime; }
 
    void setResult( const QString &result) { mresult = result; }
 
protected:
    QString mname, msrc, mresult;
    QDateTime mdatetime;
 
};

result 값을 바꾸어줄 필요가 있어서,

void setResult( const QString &result) { mresult = result; }

로 멤버 함수를 만들고,

msg->header().setResult("Result");

로 값을 설정해 주었습니다. 그런데, 값이 변하지 않고, 계속 원래 값을 유지하더군요. 어떻게 해야 값을 바꿀 수 있을까요?

void setResult( const QString &result) { mresult = result; printf(mresult); }

라고 하면 "Result"가 콘솔에 출력되었습니다만, 여전히 데이터는 예전 값을 가지고 있더군요.