Russian Qt Forum
Ноябрь 23, 2024, 07:52
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Программирование
>
С/C++
>
C++ vs D
Страниц:
1
...
5
6
[
7
]
8
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: C++ vs D (Прочитано 69357 раз)
Rcus
Гость
Re: C++ vs D
«
Ответ #90 :
Октябрь 31, 2008, 12:17 »
ну если это Q_ASSERT то можно ловить вызов qFatal
Записан
BRE
Гость
Re: C++ vs D
«
Ответ #91 :
Октябрь 31, 2008, 12:22 »
Цитата: Detonator от Октябрь 31, 2008, 12:11
BRE, разумеется ты никогда подобных ошибок не допускаешь, так научи меня глупого как останавливать отладчик в местах Assert'ов чтобы стек вызовов сохранялся.
Честно, не знаю как там под вендой, но под линуксом у меня с этим проблем никогда не возникало.
Цитата: Detonator от Октябрь 31, 2008, 12:11
[qoute]QImage image, вместо QImage &image, ты о чем думал? Почему ты считаешь это проблемой C++[/qoute]
В данном случае я считаю что это проблема библиотеки а не языка, QImage должен себя вести как некопируемый объект, копирование делать только специальной функцией. Вот например у QScriptValue все сделано правильно, результат ожидаем, у QString/QByteArray тоже.
Не понял что там про некопируемые объекты... В C++ (! не Qt) когда пишешь: void megafunc( Type param ), в теле функции имеем копию param - по-любому. Почитай книги...
Записан
spirit
Гость
Re: C++ vs D
«
Ответ #92 :
Октябрь 31, 2008, 12:32 »
Цитата: Detonator от Октябрь 31, 2008, 12:11
BRE, разумеется ты никогда подобных ошибок не допускаешь, так научи меня глупого как останавливать отладчик в местах Assert'ов чтобы стек вызовов сохранялся.
вроде э уже ответили на этот вопрос: кнопку "Continue" в диалоге ассерта нажать надо и будет вам стек вызовов.
см. пост pastor'a
Цитировать
2 Detonator:
1) Это невнимательность, а не недостаток языка
2) Нет опыта отладки. Когда выскакивает ассерт, нажмите кнопку Продолжить, получите стек вызовов
Записан
BRE
Гость
Re: C++ vs D
«
Ответ #93 :
Октябрь 31, 2008, 12:44 »
Никого не хочу обидеть, но эта тема мне напоминает следующий сюжет:
Человек начинает строить кирпичный дом, даже не попытавшись научится класть кирпич. Потом он удивляется и возмущается тому что дом разваливается в середине строительства. На советы строителей, сначала разобраться с тонкостями этого дела, он отвечает, что кирпичные дома это говно, буду строить панельные. И наплевать, что они не такие теплые. Как то так...
«
Последнее редактирование: Октябрь 31, 2008, 12:46 от BRE
»
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: C++ vs D
«
Ответ #94 :
Октябрь 31, 2008, 13:06 »
Цитата: Detonator от Октябрь 31, 2008, 12:11
В данном случае я считаю что это проблема библиотеки а не языка, QImage должен себя вести как некопируемый объект, копирование делать только специальной функцией. Вот например у QScriptValue все сделано правильно, результат ожидаем, у QString/QByteArray тоже.
Никакого копирования QImage непроисходит. QImage - это шаровый класс. Происходит лишь увеличение счетчика ссылок на данные. ЛДишь при попытке модификации данных происходит копирование.
Более того, Qt здесь абсолютно непричем. Передача по значению, по ссылке, через указатель - это специфика языка, а не библиотеки.
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Eldar
Гость
Re: C++ vs D
«
Ответ #95 :
Октябрь 31, 2008, 13:28 »
Цитата: BRE от Октябрь 31, 2008, 12:44
Никого не хочу обидеть, но эта тема мне напоминает следующий сюжет:
Человек начинает строить кирпичный дом, даже не попытавшись научится класть кирпич. Потом он удивляется и возмущается тому что дом разваливается в середине строительства. На советы строителей, сначала разобраться с тонкостями этого дела, он отвечает, что кирпичные дома это говно, буду строить панельные. И наплевать, что они не такие теплые. Как то так...
Я так понимаю это мне адресовано было. Могу ответить. Я почти полностью изучил 1000 страничную книгу по плюсам, плюс 2 книги Мейерса(половина советов была о том как нельзя писать на С++). Я умею управлять памятью и подчищать ее за собой. В Ди к вашему сведению при необходимости я также пользуюсь malloc.
По Вашему значит программисты на python или hascell ничего не соображают в программировании? Да пишите тогда на асме - будете намного больше понимать в работе компьютера. Или в машинных кодах. Не хочу Вас обидеть, но то что вы написали про кирпичи полный бред. Александреску, если вы слышали о его книгах(для меня они пока слишком сложные) наверное ничего не понимает в строительстве домов(программировании), что бросил С++ и разрабатывает/использует D.
«
Последнее редактирование: Ноябрь 22, 2008, 16:16 от pastor
»
Записан
BRE
Гость
Re: C++ vs D
«
Ответ #96 :
Октябрь 31, 2008, 13:38 »
Цитата: Eldar от Октябрь 31, 2008, 13:28
Я так понимаю это мне адресовано было. Могу ответить. Я почти полностью прочел 1000 страничную книгу по плюсам, плюс 2 книги Мейерса(половина советов была о том как нельзя писать на С++). Я умею управлять памятью и в подчищать ее за собой. В Ди к вашему сведению при необходимости я также пользуюсь malloc.
По Вашему значит программисты на python или hascell ничего не соображают в программировании. Да пишите тогда на асме - будете намного больше понимать в работе компьютера. Или в машинных кодах. Не хочу Вас обидеть, но то что вы написали полный бред.
Я не писАл это обращаясь лично к тебе. И сразу предупредил, что не хочу никого обидеть...
В последнее время на форуме было несколько обсуждений так называемой "кривости" языка С/С++, кто-то не понимал указателей и ссылок, кто-то не понимал множественного наследования и ручного управления памятью. Люди место того, чтобы разобраться со всеми тонкостями языка, говорили просто - С/С++ это фигня. Вот этот пример и описывает такое отношение к делу.
Записан
BRE
Гость
Re: C++ vs D
«
Ответ #97 :
Октябрь 31, 2008, 13:45 »
Цитата: Eldar от Октябрь 31, 2008, 13:28
Александреску, если вы слышали о его книгах(для меня они пока слишком сложные) наверное ничего не понимает в строительстве домов(программировании), что бросил С++ и разрабатывает/использует D.
Вот ключевой момент. Разработка нового языка это ИССЛЕДОВАНИЕ. В результате таких исследований появляются новые конструкции, которые могут заимствоваться в других языках, но это и те вещи которые показывают свою неудачность. Это именно ИССЛЕДОВАНИЕ. Пройдет еще много лет, пока этот язык станет промышленным, когда на него будут разработаны стандарты и им можно будет спокойно пользоваться в больших проектах. Причем к этому моменту он может сильно измениться и не в приятную для тебя сторону.
«
Последнее редактирование: Октябрь 31, 2008, 13:50 от BRE
»
Записан
mikemorgunov
Гость
Re: C++ vs D
«
Ответ #98 :
Октябрь 31, 2008, 13:48 »
Цитировать
Человек начинает строить кирпичный дом, даже не попытавшись научится класть кирпич.
Ага ... а кирпичи все разные, и круглые тоже
Еще точнее - Египетские пирамиды, а наверху ф-я int main()
с уважением ...
Записан
Eldar
Гость
Re: C++ vs D
«
Ответ #99 :
Октябрь 31, 2008, 14:11 »
pastor
Мне очень хотелось бы услышать от Вас, какими качествами для Вас обладает идеальный ЯП? Перечислите пожалуйста, мне интересно.
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: C++ vs D
«
Ответ #100 :
Октябрь 31, 2008, 14:21 »
Цитата: Eldar от Октябрь 31, 2008, 14:11
Мне очень хотелось бы услышать от Вас, какими качествами для Вас обладает идеальный ЯП? Перечислите пожалуйста, мне интересно.
Меня пволне устраивает С++
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Detonator
Гость
Re: C++ vs D
«
Ответ #101 :
Октябрь 31, 2008, 15:24 »
Цитата: pastor от Октябрь 31, 2008, 11:47
2) Нет опыта отладки. Когда выскакивает ассерт, нажмите кнопку Продолжить, получите стек вызовов
Вот не получаю, и при Continue, и при Break стек пустой, вернее в нем одна строка - какая-то даже не qt-шная dll (сейчас воспроизвести и точно сказать не могу). Потому мне и кажется что то-то при компилировании или в настройказх отладчика не так указано.
Записан
SASA
Гость
Re: C++ vs D
«
Ответ #102 :
Октябрь 31, 2008, 16:38 »
Цитата: Detonator от Октябрь 31, 2008, 15:24
Вот не получаю, и при Continue, и при Break стек пустой, вернее в нем одна строка - какая-то даже не qt-шная dll (сейчас воспроизвести и точно сказать не могу). Потому мне и кажется что то-то при компилировании или в настройказх отладчика не так указано.
А поток один?
Критерии выбора языка:
- время на изучение (например, с++ я знаю – время 0);
- наличие хорошей IDE;
- наличие библиотек для поставленных задач;
- количество людей использующих язык;
- выразительность, т.е. возможность использовать разные парадигмы;
- платформы;
- перспективы языка.
Порядок выбирается в зависимости от задачи.
Записан
BRE
Гость
Re: C++ vs D
«
Ответ #103 :
Октябрь 31, 2008, 18:03 »
Цитата: mikemorgunov от Октябрь 31, 2008, 17:34
( это насчет того, что С++ - могуч )
А могуч С++, тем что там нет сборщика мусора, а если он мне понадобится, я могу воспользоваться сторонним или написать свой.
Тем, что управлением памятью я могу управлять так, как считаю нужным и для разных объектов могу сделать разные механизмы.
Тем, что когда я достаю значение по указателю, то достается значение из ячейки памяти, без кучи дополнительных проверок, а все ли там правильно. Если мне это потребуется я могу это сделать сам, так как мне нужно или использовать готовое решение.
Тем, что если мне нужны строки, я могу использовать те, которые мне нужны. (char *, std::string, QString, ...).
И этот список можно продолжать и продолжать.
В С/С++ все решаю я, так как мне надо.
Записан
Eldar
Гость
Re: C++ vs D
«
Ответ #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
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...