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

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

Страниц: 1 ... 5 6 [7] 8   Вниз
  Печать  
Автор Тема: C++ vs D  (Прочитано 69373 раз)
Rcus
Гость
« Ответ #90 : Октябрь 31, 2008, 12:17 »

ну если это Q_ASSERT то можно ловить вызов qFatal
Записан
BRE
Гость
« Ответ #91 : Октябрь 31, 2008, 12:22 »

BRE, разумеется ты никогда подобных ошибок не допускаешь, так научи меня глупого как останавливать отладчик в местах Assert'ов чтобы стек вызовов сохранялся.
Честно, не знаю как там под вендой, но под линуксом у меня с этим проблем никогда не возникало.

[qoute]QImage image, вместо QImage &image, ты о чем думал? Почему ты считаешь это проблемой C++[/qoute]

В данном случае я считаю что это проблема библиотеки а не языка, QImage должен себя вести как некопируемый объект, копирование делать только специальной функцией. Вот например у QScriptValue все сделано правильно, результат ожидаем, у QString/QByteArray тоже.
Не понял что там про некопируемые объекты... В C++ (! не Qt) когда пишешь: void megafunc( Type param ), в теле функции имеем копию param - по-любому. Почитай книги...



Записан
spirit
Гость
« Ответ #92 : Октябрь 31, 2008, 12:32 »

BRE, разумеется ты никогда подобных ошибок не допускаешь, так научи меня глупого как останавливать отладчик в местах Assert'ов чтобы стек вызовов сохранялся.

вроде э уже ответили на этот вопрос: кнопку "Continue" в диалоге ассерта нажать надо и будет вам стек вызовов.
см. пост pastor'a
Цитировать
2 Detonator:

1) Это невнимательность, а не недостаток языка
2) Нет опыта отладки. Когда выскакивает ассерт, нажмите кнопку Продолжить, получите стек вызовов
Записан
BRE
Гость
« Ответ #93 : Октябрь 31, 2008, 12:44 »

Никого не хочу обидеть, но эта тема мне напоминает следующий сюжет:
Человек начинает строить кирпичный дом, даже не попытавшись научится класть кирпич. Потом он удивляется и возмущается тому что дом разваливается в середине строительства. На советы строителей, сначала разобраться с тонкостями этого дела, он отвечает, что кирпичные дома это говно, буду строить панельные. И наплевать, что они не такие теплые. Как то так...
« Последнее редактирование: Октябрь 31, 2008, 12:46 от BRE » Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #94 : Октябрь 31, 2008, 13:06 »

В данном случае я считаю что это проблема библиотеки а не языка, QImage должен себя вести как некопируемый объект, копирование делать только специальной функцией. Вот например у QScriptValue все сделано правильно, результат ожидаем, у QString/QByteArray тоже.

Никакого копирования QImage непроисходит. QImage - это шаровый класс. Происходит лишь увеличение счетчика ссылок на данные. ЛДишь при попытке модификации данных происходит копирование.

Более того, Qt здесь абсолютно непричем. Передача по значению, по ссылке, через указатель - это специфика языка, а не библиотеки.
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Eldar
Гость
« Ответ #95 : Октябрь 31, 2008, 13:28 »

Никого не хочу обидеть, но эта тема мне напоминает следующий сюжет:
Человек начинает строить кирпичный дом, даже не попытавшись научится класть кирпич. Потом он удивляется и возмущается тому что дом разваливается в середине строительства. На советы строителей, сначала разобраться с тонкостями этого дела, он отвечает, что кирпичные дома это говно, буду строить панельные. И наплевать, что они не такие теплые. Как то так...

Я так понимаю это мне адресовано было. Могу ответить. Я почти полностью изучил 1000 страничную книгу по плюсам, плюс 2 книги Мейерса(половина советов была о том как нельзя писать на С++). Я умею управлять памятью и подчищать ее за собой. В Ди к вашему сведению при необходимости я также пользуюсь malloc.
По Вашему значит программисты на python или hascell ничего не соображают в программировании? Да пишите тогда на асме - будете намного больше понимать в работе компьютера. Или в машинных кодах. Не хочу Вас обидеть, но то что вы написали про кирпичи полный бред. Александреску, если вы слышали о его книгах(для меня они пока слишком сложные) наверное ничего не понимает в строительстве домов(программировании), что бросил С++ и разрабатывает/использует D.
« Последнее редактирование: Ноябрь 22, 2008, 16:16 от pastor » Записан
BRE
Гость
« Ответ #96 : Октябрь 31, 2008, 13:38 »

Я так понимаю это мне адресовано было. Могу ответить. Я почти полностью прочел 1000 страничную книгу по плюсам, плюс 2 книги Мейерса(половина советов была о том как нельзя писать на С++). Я умею управлять памятью и в подчищать ее за собой. В Ди к вашему сведению при необходимости я также пользуюсь malloc.
По Вашему значит программисты на python или hascell ничего не соображают в программировании. Да пишите тогда на асме - будете намного больше понимать в работе компьютера. Или в машинных кодах.  Не хочу Вас обидеть, но то что вы написали полный бред.
Я не писАл это обращаясь лично к тебе. И сразу предупредил, что не хочу никого обидеть...
В последнее время на форуме было  несколько обсуждений так называемой "кривости" языка С/С++, кто-то не понимал указателей и ссылок, кто-то не понимал множественного наследования и ручного управления памятью. Люди место того, чтобы разобраться со всеми тонкостями языка, говорили просто - С/С++ это фигня. Вот этот пример и описывает такое отношение к делу.
Записан
BRE
Гость
« Ответ #97 : Октябрь 31, 2008, 13:45 »

Александреску, если вы слышали о его книгах(для меня они пока слишком сложные) наверное ничего не понимает в строительстве домов(программировании), что бросил С++ и разрабатывает/использует D.
Вот ключевой момент. Разработка нового языка это ИССЛЕДОВАНИЕ. В результате таких исследований появляются новые конструкции, которые могут заимствоваться в других языках, но это и те вещи которые показывают свою неудачность. Это именно ИССЛЕДОВАНИЕ. Пройдет еще много лет, пока этот язык станет промышленным, когда на него будут разработаны стандарты и им можно будет спокойно пользоваться в больших проектах. Причем к этому моменту он может сильно измениться и не в приятную для тебя сторону.  Подмигивающий
« Последнее редактирование: Октябрь 31, 2008, 13:50 от BRE » Записан
mikemorgunov
Гость
« Ответ #98 : Октябрь 31, 2008, 13:48 »

Цитировать
Человек начинает строить кирпичный дом, даже не попытавшись научится класть кирпич.

Ага ... а кирпичи все разные, и круглые тоже Улыбающийся
Еще точнее - Египетские пирамиды, а наверху ф-я int main() Улыбающийся

с уважением ...
Записан
Eldar
Гость
« Ответ #99 : Октябрь 31, 2008, 14:11 »

pastor
Мне очень хотелось бы услышать от Вас, какими качествами для Вас обладает идеальный ЯП? Перечислите пожалуйста, мне интересно.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #100 : Октябрь 31, 2008, 14:21 »

Мне очень хотелось бы услышать от Вас, какими качествами для Вас обладает идеальный ЯП? Перечислите пожалуйста, мне интересно.

Меня пволне устраивает С++
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Detonator
Гость
« Ответ #101 : Октябрь 31, 2008, 15:24 »

2) Нет опыта отладки. Когда выскакивает ассерт, нажмите кнопку Продолжить, получите стек вызовов

Вот не получаю, и при Continue, и при Break стек пустой, вернее в нем одна строка - какая-то даже не qt-шная dll (сейчас воспроизвести и точно сказать не могу). Потому мне и кажется что то-то при компилировании или в настройказх отладчика не так указано.
Записан
SASA
Гость
« Ответ #102 : Октябрь 31, 2008, 16:38 »

Вот не получаю, и при Continue, и при Break стек пустой, вернее в нем одна строка - какая-то даже не qt-шная dll (сейчас воспроизвести и точно сказать не могу). Потому мне и кажется что то-то при компилировании или в настройказх отладчика не так указано.
А поток один?

Критерии выбора языка:
- время на изучение (например, с++ я знаю – время 0);
- наличие хорошей IDE;
- наличие библиотек для поставленных задач;
- количество людей использующих язык;
- выразительность, т.е. возможность использовать разные парадигмы;
- платформы;
- перспективы языка.
Порядок выбирается в зависимости от задачи.
Записан
BRE
Гость
« Ответ #103 : Октябрь 31, 2008, 18:03 »

( это насчет того, что С++ - могуч )
А могуч С++, тем что там нет сборщика мусора, а если он мне понадобится, я могу воспользоваться сторонним или написать свой.
Тем, что управлением памятью я могу управлять так, как считаю нужным и для разных объектов могу сделать разные механизмы.
Тем, что когда я достаю значение по указателю, то достается значение из ячейки памяти, без кучи дополнительных проверок, а все ли там правильно. Если мне это потребуется я могу это сделать сам, так как мне нужно или использовать готовое решение.
Тем, что если мне нужны строки, я могу использовать те, которые мне нужны. (char *, std::string, QString, ...).
И этот список можно продолжать и продолжать.
В С/С++ все решаю я, так как мне надо.
Записан
Eldar
Гость
« Ответ #104 : Октябрь 31, 2008, 18:43 »

Цитировать
А могуч С++, тем что там нет сборщика мусора, а если он мне понадобится, я могу воспользоваться сторонним или написать свой.
Тем, что управлением памятью я могу управлять так, как считаю нужным и для разных объектов могу сделать разные механизмы.
Тем, что когда я достаю значение по указателю, то достается значение из ячейки памяти, без кучи дополнительных проверок, а все ли там правильно. Если мне это потребуется я могу это сделать сам, так как мне нужно или использовать готовое решение.
Тем, что если мне нужны строки, я могу использовать те, которые мне нужны. (char *, std::string, QString, ...).
И этот список можно продолжать и продолжать.
В С/С++ все решаю я, так как мне надо.
А могуч D, тем что там есть сборщик мусора, а если мне понадобится, я могу воспользоваться ручным выделением памяти в критичных местах, не тратя время во всех остальных случаях на поиски утечек. А могу вообще отключить его(только зачем?) Тем, что управлением памятью я могу управлять так, как считаю нужным и для разных объектов могу сделать разные механизмы. Тем, что когда я достаю значение по указателю, то достается значение из ячейки памяти, без кучи дополнительных проверок, а все ли там правильно. Если мне это потребуется я могу это сделать сам, так как мне нужно или использовать готовое решение.
Если мне нужны строки, я не заморачиваюсь что Сишная библиотека использует char *, С++ std::string а Qt - QString, я просто использую строки.
« Последнее редактирование: Октябрь 31, 2008, 18:46 от Eldar » Записан
Страниц: 1 ... 5 6 [7] 8   Вверх
  Печать  
 
Перейти в:  


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