Russian Qt Forum
Ноябрь 24, 2024, 00:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Структура и типы  (Прочитано 10934 раз)
Omg
Гость
« : Февраль 03, 2011, 21:13 »

Код:
typedef struct M_UD{
        int         x;          
        QString     y;    
        QString     z;    
        short       s;      
    }GD;
    QList<GD >* m_list;
Правилен ли подход и как с подобным работать, пока плохо понимаю. %) Может есть что попороще? Задача сохранять в листе разные типы данных при этом они должны быть связаны.
Или лучше пойти по СПП пути и создать отдельный класс? Но тогда я знаю как с ним работать ^^
Записан
Fat-Zer
Гость
« Ответ #1 : Февраль 03, 2011, 21:34 »

прочитайте какую-нибудь книжку по С++, а лучше сначала по си а потом по с++.
теперь по порядку:

> typedef struct M_UD{
тайпдефы в объявление структур нужны были в си

> QList<GD >* m_list;
так можно, если вы понимаете, что написали, но скорей всего вы имели в виду "QList<GD*>"

> Правилен ли подход и как с подобным работать, пока плохо понимаю. %) Может есть что попороще? Задача сохранять в листе разные типы данных при этом они должны быть связаны.
работать:
Код
C++ (Qt)
QList<GD*> m_list;
m_list= new QList<GD>;
m_list->append(new GD);
m_list->last()->x=1;
m_list->last()->y="qwerty";
 

> Или лучше пойти по СПП пути
это две опечатки в ООП?

> Но тогда я знаю как с ним работать
ну так используйте
Записан
Omg
Гость
« Ответ #2 : Февраль 03, 2011, 21:58 »

СПП - CPP - C++ - классы, вместо структур, это я имел в виду. Просто был интересен именно такой подход и как его реализовать. Ведь надо же учиться, не просто так же спрашивать и делать, как знаешь. Подмигивающий
Премного благодарен.
« Последнее редактирование: Февраль 03, 2011, 22:00 от Omg » Записан
merke
Гость
« Ответ #3 : Февраль 04, 2011, 04:31 »

Код
C++ (Qt)
struct M_UD
       {
          int         x;          
          QString     y;    
          QString     z;    
          short       s;      
       }GD;
 
QList<GD> m_list;
 
m_list[0].x = 1;
m_list[0].y.append("Hi");

и т.д.
Записан
gogi
Гость
« Ответ #4 : Февраль 04, 2011, 11:05 »

СПП - CPP - C++ - классы, вместо структур, это я имел в виду.
С точки зрения компиляторы с++ - это почти одно и тоже.
Записан
Omg
Гость
« Ответ #5 : Февраль 04, 2011, 11:12 »

Я в курсе и что? Видимо вы плохо поняли о чем я говорил...

Александр, спасибо за еще один пример.
Записан
_govorilka
Гость
« Ответ #6 : Февраль 04, 2011, 11:38 »

Ты можешь взять QVariantList. Это готовое решение и при этом довольно развитое.
Записан
Omg
Гость
« Ответ #7 : Февраль 04, 2011, 11:58 »

Спасибо, попробую копнуть в этом направлении. Улыбающийся
Записан
slim
Гость
« Ответ #8 : Февраль 04, 2011, 19:14 »

Настоятельно рекомендую не использовать открытые поля, лучше перенечи их в секцию private, а доступ к ним сделай через методы:
struct M_UD
        {
           int get_x() const;
           void set_x(int);
         private:
           int         x;   
        }GD;
 
QList<GD> m_list;
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #9 : Февраль 04, 2011, 19:44 »

slim, а смысл для обычной структуры так извращаться? В данном случае это излишне.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Omg
Гость
« Ответ #10 : Февраль 04, 2011, 19:48 »

Тем более она и так приват в любом случае. Улыбающийся
Записан
slim
Гость
« Ответ #11 : Февраль 04, 2011, 19:53 »

правильно писать смысл есть всегда  Подмигивающий
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #12 : Февраль 04, 2011, 19:57 »

Omg, кто приват?
slim, Бритва Оккама
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #13 : Февраль 04, 2011, 20:11 »

Настоятельно рекомендую не использовать открытые поля, лучше перенечи их в секцию private, а доступ к ним сделай через методы:
struct M_UD
        {
           int get_x() const;
           void set_x(int);
         private:
           int         x;   
        }GD;
 
QList<GD> m_list;
Прошу меня правильно понять - я не хочу "придраться", начать "холивар" и.т.п. Но мне интересно понять ЗАЧЕМ? Почему "автоматическое" объявление private (многими) считается "всегда лучше"? Я понимаю set_x как намек: этот метод может производить какие-то действия, изменять и др. члены класса, а не просто установить x. Но в изначальной структуре я не вижу никакого даже намека на такую ф-циональность. Что же Вы хотели этим сказать (какую мысль выразить)? 
Записан
Omg
Гость
« Ответ #14 : Февраль 04, 2011, 20:15 »

Omg, кто приват?
slim, Бритва Оккама
Структура, просто тут это не описано.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.092 секунд. Запросов: 23.