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

Вопросы о C ++, статически типизированной, свободной форме, мультипарадигме, скомпилированном языке программирования общего назначения.

7
Зачем объявлять переменную в одной строке, а присваивать ей в следующей?
Я часто вижу в коде C и C ++ следующее соглашение: some_type val; val = something; some_type *ptr = NULL; ptr = &something_else; вместо some_type val = something; some_type *ptr = &something_else; Сначала я предполагал, что это привычка, оставшаяся со времен, когда вам приходилось объявлять все локальные переменные в верхней …
101 c++  c 

14
Плохо ли писать код, основанный на оптимизации компилятора?
Я изучал некоторый C ++, и мне часто приходилось возвращать большие объекты из функций, созданных внутри функции. Я знаю, что есть передача по ссылке, возвращаем указатель и возвращаем решения ссылочного типа, но я также читал, что компиляторы C ++ (и стандарт C ++) позволяют оптимизировать возвращаемое значение, что позволяет избежать …
99 c++  performance 


8
Является ли современный C ++ заменой C #? Microsoft подталкивает разработчиков к внедрению C ++? [закрыто]
Я слышал о современной популярности C ++ и некоторых разговорах о переходе на C ++ с C # или других C-подобных языков. Я знаю о возможностях C ++ 11, но мне бы хотелось услышать ваш опыт, особенно от разработчиков, которые перешли с C # на C ++. Что еще более …
91 c#  c++ 

8
Лучше ли документировать функции в заголовочном файле или исходном файле?
На языках, которые различают исходный файл и файл заголовка (в основном C и C ++), лучше документировать функции в заголовочном файле: (ворованный из CCAN ) /** * time_now - return the current time * * Example: * printf("Now is %lu seconds since epoch\n", (long)time_now().tv_sec); */ struct timeval time_now(void); или в …
86 c++  c  headers 

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

15
Почему 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/ Но как это вообще возможно? Меня поражает, что интерпретируемый байт-код может быть быстрее, чем скомпилированный язык. Может кто-нибудь объяснить, пожалуйста? Спасибо!
80 java  c++  performance 

5
Почему нет систем управления пакетами для C и C ++? [закрыто]
Существует несколько языков программирования, для которых существует система управления пакетами: CTAN для TeX CPAN для Perl Пип и яйца для Python Maven для Java клика для Хаскелла Драгоценные камни для Руби НПМ для NodeJS Бауэр для внешнего интерфейса Javascript & CSS Nuget для C # композитор для PHP Есть ли …
78 c++  c  builds  packages 

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

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

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

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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.