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

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

6
Функция случайно делает недействительным ссылочный параметр - что пошло не так?
Сегодня мы узнали причину неприятной ошибки, которая периодически возникала только на определенных платформах. Сложив наш код выглядел так: class Foo { map<string,string> m; void A(const string& key) { m.erase(key); cout << "Erased: " << key; // oops } void B() { while (!m.empty()) { auto toDelete = m.begin(); A(toDelete->first); } …
54 c++ 

10
Почему ключевое слово 'final' будет полезным?
Кажется, что Java обладает способностью объявлять классы, которые не могут быть извлечены целую вечность, и теперь C ++ имеет это тоже. Однако, в свете принципа открытия / закрытия в SOLID, почему это было бы полезно? Для меня finalключевое слово звучит так же, как friendэто - это законно, но если вы …
54 java  c++  solid  final 

5
Почему умные указатели подсчета ссылок так популярны?
Как я вижу, умные указатели широко используются во многих реальных проектах C ++. Хотя некоторые интеллектуальные указатели, очевидно, полезны для поддержки RAII и передачи прав собственности, также существует тенденция использования общих указателей по умолчанию в качестве способа «сборки мусора» , так что программисту не нужно слишком много думать о распределении …

8
Что происходит с мусором в C ++?
У Java есть автоматический сборщик мусора, который время от времени останавливает мир, но заботится о мусоре в куче. Теперь приложения на C / C ++ не имеют таких зависаний STW, их использование памяти также не увеличивается бесконечно. Как достигается это поведение? Как ухаживать за мертвыми предметами?

3
Почему спецификации исключений плохие?
В школе более 10 лет назад они учили вас использовать спецификаторы исключений. Так как мой фон, как один из них Torvaldish Программисты, которые упорно избегает C ++, если не принуждал, я только в конечном итоге в C ++ спорадически, и когда я делаю, я до сих пор используют исключения спецификаторов, …

11
Почему C ++ имеет «неопределенное поведение» (UB), а другие языки, такие как C # или Java, не имеют?
В этом посте с переполнением стека приведен довольно полный список ситуаций, в которых спецификация языка C / C ++ объявляется как «неопределенное поведение». Однако я хочу понять, почему в других современных языках, таких как C # или Java, нет понятия «неопределенное поведение». Означает ли это, что конструктор компилятора может управлять …

3
C ++ строго типизированный typedef
Я пытался придумать способ объявления строго типизированных typedefs, чтобы поймать определенный класс ошибок на этапе компиляции. Часто бывает, что я буду вводить int для нескольких типов идентификаторов или вектора для положения или скорости: typedef int EntityID; typedef int ModelID; typedef Vector3 Position; typedef Vector3 Velocity; Это может сделать смысл кода …
50 c++  c++11  type-safety 

5
Почему все функции <алгоритма> принимают только диапазоны, а не контейнеры?
Есть много полезных функций &lt;algorithm&gt;, но все они работают с «последовательностями» - парами итераторов. Например, если у меня есть контейнер и мне нравится работать std::accumulateна нем, мне нужно написать: std::vector&lt;int&gt; myContainer = ...; int sum = std::accumulate(myContainer.begin(), myContainer.end(), 0); Когда все, что я собираюсь сделать, это: int sum = std::accumulate(myContainer, …

9
Сравнение IDE для разработки на C ++ и C под Linux: KDevelop, Eclipse, NetBeans, CodeBlocks и Anjuta [закрыто]
Я хотел бы отметить ваш опыт полномасштабных IDE в Linux. Я лично работаю в основном с vim, однако другие программисты хотели бы видеть настоящую IDE. Поэтому я хотел бы услышать ваше личное мнение о различных IDE и сравнение между ними в следующем контексте: C ++ и, возможно, некоторая разработка на …
49 c++  ide  linux 

9
Объяснение того, как «говори, не спрашивай» считается хорошим ОО
Этот пост был опубликован на Hacker News с несколькими отзывами. Исходя из C ++, большинство этих примеров, кажется, идут вразрез с тем, чему меня учили. Например, пример № 2: Плохо: def check_for_overheating(system_monitor) if system_monitor.temperature &gt; 100 system_monitor.sound_alarms end end по сравнению с хорошим: system_monitor.check_for_overheating class SystemMonitor def check_for_overheating if temperature …

2
Являются ли библиотеки только для заголовков более эффективными?
Предположения Одним из преимуществ библиотек только для заголовков для C ++ является то, что их не нужно компилировать отдельно. В C и C ++ inlineимеет смысл только если функция определена в заголовочном файле *. Традиционно в C использовался макет .c / .h, где заголовок представляет минимальный открытый интерфейс модуля перевода. …
49 c++  c  libraries 

8
Когда НЕ использовать виртуальные деструкторы?
Я полагал, что много раз искал о виртуальных деструкторах, большинство упоминало назначение виртуальных деструкторов и почему вам нужны виртуальные деструкторы. Также я думаю, что в большинстве случаев деструкторы должны быть виртуальными. Тогда возникает вопрос: почему с ++ не устанавливает все виртуальные деструкторы по умолчанию? или в других вопросах: Когда мне …

4
Как мог первый компилятор C ++ быть написан на C ++?
Страуструп утверждает, что Cfront, первый компилятор C ++, был написан на C ++ ( Stroustrup FAQ ). Однако как вообще возможно, чтобы первый компилятор C ++ был написан на C ++? Код, составляющий компилятор, тоже должен быть скомпилирован, и поэтому первый компилятор C ++ не мог быть написан на C …

11
Что я могу сделать, если интервьюер не знает ответа на свой вопрос? [закрыто]
Вчера у меня был ужасный опыт в интервью. Интервьюер спросил меня о чисто виртуальной функции. Я сказал: он может иметь или не иметь определение в базовом классе, но производные классы должны предоставлять определение, если они также не хотят быть абстрактным классом. Но интервьюер продолжал спрашивать: «Может ли чисто виртуальное иметь …
48 c++  interview 

3
Разработка Android с использованием C и C ++ [закрыто]
Я разработчик C, C ++. Я заинтересован в мобильной разработке. Я хочу знать, как я могу разрабатывать приложения для Android с использованием C и C ++, я прочитал, что они предоставляют набор для разработчиков на C, C ++, но он не имеет всех функций, как в наборе Java. Стоит ли …
47 c++  c  android 

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