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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: C++ переменные  (Прочитано 9027 раз)
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #15 : Август 26, 2011, 18:57 »

Потому что это не безопасный си-вэй стиль.
Записан

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

Сообщений: 11445


Просмотр профиля
« Ответ #16 : Август 26, 2011, 21:13 »

ПОЧЕМУ так жестоко ?? Я конечно понимаю что это своеобразный "костыль", но порой удобно !
Удобно для UI, когда число параметров колеблется 2-5 (остальные по умолчанию) и они разных типов. А с номерами столбцов - не в масть, они все одного типа. да и  потенциально их может быть много. В QSet их - и подавать этот QSet по константной ссылке. Вызывать никак не хуже

Код
C++ (Qt)
haveValuesAtRow(QSet <int> () << 1 << 4 << 6);
 
А будет больше - спокойно зарядить в QSet окремо
Записан
Yuriy
Гость
« Ответ #17 : Август 26, 2011, 23:03 »

Да и вправду. хотя всякие сишные Prinf пользуют arg, лучше без них, дабы избежать выгребания из оперативы мусора.
А что насчет инициализации и операторов присваивания, все же я склонен к тому, что нужно избегать базовой инициализации, если результирующее значение известно до присваивания значения. Речь не только о QString, а также о более увесистых классах, при создании которых вешаются дефолтные свойства класса, а то и вызов конструкторов других классов.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #18 : Август 27, 2011, 11:24 »

А что насчет инициализации и операторов присваивания, все же я склонен к тому, что нужно избегать базовой инициализации, если ..
Базовой инициализации не избежать. Если у класса есть конструктор(ы) - невозможно создать экземпляр без того чтобы один из них вызвался (и это правильно).
Записан
Yuriy
Гость
« Ответ #19 : Август 28, 2011, 12:28 »

Это мысль, я думаю что в этом и проблема многих классов, базовая инициализация такая, как будто пользователь не знает, для чего и с чем едят этот класс. А посему было правильней, я сейчас думаю, конструктор оставлять пустым, а в придачу к классу функция, например Init(). Т.е. пользователь создает пустой класс, грубо говоря название, а затем инициалирует его , а если у него есть готовое решение, тогда присваивает с помощь "=". Это правильный ход мыслей Непонимающий
Записан
brankovic
Гость
« Ответ #20 : Август 28, 2011, 12:45 »

конструктор оставлять пустым, а в придачу к классу функция, например Init()

В C++ такой вариант возможен, но никто так не делает. Это во-первых неудобно (забудешь init () и получишь падение), а во-вторых ненужно, т.к. базовая инициализация, как правило, тривиальна и не сказывается производительности.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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