Russian Qt Forum

Qt => Вопросы новичков => Тема начата: virtual_root от Август 27, 2012, 12:56



Название: QSharedPointer получить данные
Отправлено: virtual_root от Август 27, 2012, 12:56
День добрый. Прошу прощения сразу за глупый вопрос, но прошу не отказать в помощи. С типом QSharedPointer почти не работала. Сейчас встала необходимость. Проблема в следующем, пишу следующий код6
в .h файле
Код
C++ (Qt)
struct MessageModule
           : public MessageImplHelper<MessageModule,2,19>
   {
       QList <QString>  names;
       QList <QString> versions;
 
       template <class stream_>
       void enumFields(stream_ &stream, EIODirection dir)
       {
           enumField(stream, dir, "listNames", names);
           enumField(stream, dir, "listVersion", versions);
 
       }
   };
   typedef QSharedPointer<MessageModule> _messageModule;
 

в файле .cpp пытаюсь сделать следующее:
Код
C++ (Qt)
_messageModule ptr(new MessageModule);
ptr.data().names.at(i) = _listModule.at(i).name;
но компилятор ругается на ptr.data().names.at(i);
Почему?? как мне достучаться до полей
Код:
       QList <QString>  names;
        QList <QString> versions;
??
Причем если сделаю так:
Код:
MessageModule *u = new MessageModule;
u->names.at(i);
то он видит эти поля.
Как мне через умный указатель достучаться до полей?


Название: Re: QSharedPointer получить данные
Отправлено: mutineer от Август 27, 2012, 12:58
Тоже через стрелочку - это же указатель, хоть и умный))


Название: Re: QSharedPointer получить данные
Отправлено: virtual_root от Август 27, 2012, 13:05
да точно, вы были правы!