Вопросы с тегом «c++»

82
Разработчики Java сознательно отказались от RAII?

Как давний программист на C #, я недавно узнал больше о преимуществах Resource Acquisition Is Initialization (RAII). В частности, я обнаружил, что идиома C #: using (var dbConn = new DbConnection(connStr)) { // do stuff with dbConn } имеет эквивалент C ++: { DbConnection dbConn(connStr); // do...

80
Почему Java может быть быстрее, чем C ++?

Иногда Java превосходит C ++ в тестах. Конечно, иногда C ++ выигрывает. Смотрите следующие ссылки: http://keithlea.com/javabench/ http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/ http://blog.cfelde.com/2010/06/c-vs-java-performance/ Но как это...

78
Почему нет систем управления пакетами для C и C ++? [закрыто]

Существует несколько языков программирования, для которых существует система управления пакетами: CTAN для TeX CPAN для Perl Пип и яйца для Python Maven для Java клика для Хаскелла Драгоценные камни для Руби НПМ для NodeJS Бауэр для внешнего интерфейса Javascript & CSS Nuget для C # композитор...

78
Можно ли заменить оптимизированный код читаемым кодом?

Иногда вы сталкиваетесь с ситуацией, когда вам нужно расширить / улучшить какой-то существующий код. Вы видите, что старый код очень скудный, но его также сложно расширять, и на его чтение требуется время. Это хорошая идея, чтобы заменить его современным кодом? Некоторое время назад мне понравился...

77
В чем преимущество объектно-ориентированного программирования перед процедурным программированием?

Я пытаюсь понять разницу между процедурными языками, такими как C, и объектно-ориентированными языками, такими как C ++. Я никогда не использовал C ++, но я обсуждал со своими друзьями, как их различать. Мне сказали, что C ++ имеет объектно-ориентированные концепции, а также публичные и частные...

76
Почему базовые для всех объектов не рекомендуется в C ++

Страуструп говорит: «Не изобретайте сразу уникальную базу для всех ваших классов (класс Object). Как правило, вы можете сделать это лучше для многих / большинства классов». (Язык программирования C ++, четвертое издание, раздел 1.3.4) Почему базовый класс для всех вообще плохая идея, и когда имеет...

76
Почему Python написан на C, а не на C ++?

В уроке по Python можно прочитать, что оригинальная реализация Python находится на C; С другой стороны, реализация Python, написанная на C, (...) Мне очень любопытно, почему Python был написан на C, а не на C ++? Я хотел бы знать причину этого решения, и ответ должен быть подкреплен историческими...

74
Является ли `catch (...) {throw; } плохая практика?

Хотя я согласен с тем, что отлов ... без повторной обработки действительно неверен, я, тем не менее, считаю, что использование таких конструкций: try { // Stuff } catch (...) { // Some cleanup throw; } Приемлемо в тех случаях, когда RAII не применяется . (Пожалуйста, не спрашивайте ... не всем в...

71
Почему я должен заботиться о микропроизводительности и эффективности?

Многие вопросы и ответы на страницах C / C ++, конкретно или косвенно обсуждают проблемы микро производительности (такие как издержки косвенной или прямой против встроенной функции), или использование алгоритма O (N 2 ) против O (N log N) на список из 100 предметов. Я всегда пишу код, не заботясь о...

70
В чем причина того, что [+ [nodiscard]] в C ++ 17 почти везде не используется в новом коде?

C ++ 17 вводит [[nodiscard]]атрибут, который позволяет программистам отмечать функции таким образом, что компилятор выдает предупреждение, если возвращаемый объект отбрасывается вызывающей стороной; один и тот же атрибут может быть добавлен ко всему типу класса. Я читал о мотивации этой функции в...

67
Почему языки требуют скобок вокруг выражений, когда они используются с «if» и «while»?

Языки , как C, Java и C ++ все требуют скобки вокруг всего выражения при использовании в if, whileили switch. if (true) { // Do something } в отличие от if true { // Do something } Это кажется мне странным, потому что круглые скобки излишни. В этом примере trueэто отдельное выражение само по себе....

62
Почему мы должны помещать частных членов в заголовки?

Закрытые переменные - это способ скрыть сложность и детали реализации для пользователя класса. Это довольно приятная особенность. Но я не понимаю, почему в C ++ нам нужно поместить их в заголовок класса. Я вижу два досадных недостатка в этом: Загромождает заголовок от пользователя Вызывает...

60
std :: shared_ptr в крайнем случае?

Я просто смотрел трансляции "Going Native 2012" и заметил обсуждение std::shared_ptr. Я был немного удивлен, услышав несколько отрицательный взгляд Бьярне на std::shared_ptrего комментарий о том, что его следует использовать в качестве «последнего средства», когда время жизни объекта не определено...

60
Использование перечисляемых областей для битовых флагов в C ++

enum X : int(С #) или enum class X : int(C ++ , 11) представляет собой тип , который имеет скрытое внутреннее поле , intкоторый может содержать любое значение. Кроме того, Xв перечислении определен ряд предопределенных констант . Можно привести перечисление к его целочисленному значению и наоборот....

60
Плохо ли использовать компилятор C ++ только для перегрузки функций?

Поэтому я работаю над дизайном программного обеспечения с использованием C для определенного процессора. Набор инструментов включает в себя возможность компилировать как C, так и C ++. Для того, что я делаю, в этой среде нет динамического выделения памяти, и программа в целом довольно проста. Не...

59
Лучше Show () + Hide () или SetVisible (bool видимый)?

Что лучше и почему? (С точки зрения дизайна интерфейса): а) иметь два Show()и Hide()функции б) иметь одну SetVisible(bool visible)функцию РЕДАКТИРОВАТЬ: Например, некоторые объекты имеют состояние видимости, и эта функция используется для его изменения. в) иметь все три Show(), Hide(),...

59
Философия, лежащая в основе неопределенного поведения

Спецификации C \ C ++ оставляют большое количество вариантов поведения, открытых для компиляторов, чтобы реализовать их по-своему. Есть ряд вопросов, которые постоянно задают здесь о том же самом, и у нас есть несколько отличных постов об этом:...

58
Какие проблемы программирования лучше всего решать с помощью указателей? [закрыто]

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

58
Современный обзор Java [закрыт]

Я программировал в течение нескольких лет, и я начал на Java, и в свое время я нашел много разных источников, утверждающих, что Java так или иначе является низшим языком. Я хорошо знаю, что у каждого языка есть свои сильные и слабые стороны, но многие вещи, которые я читал о Java, кажутся...