Запитання з тегом «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
Чому "остаточне" ключове слово коли-небудь буде корисним?
Здається, у Java було повноваження оголошувати класи незмінними для віків, і тепер у C ++ також є. Однак, з огляду на принцип "Відкрити / закрити" в SOLID, чому це було б корисно? Для мене finalключове слово звучить так само friend- воно легальне, але якщо ви його використовуєте, швидше за все, …
54 java  c++  solid  final 

5
Чому розумні покажчики так популярні?
Як я бачу, розумні покажчики широко використовуються у багатьох реальних проектах C ++. Хоча якісь розумні покажчики, очевидно, вигідні для підтримки RAII та передачі права власності, також існує тенденція використання спільних покажчиків за замовчуванням як способу "вивезення сміття" , так що програмісту не доведеться думати про те, щоб розподілити стільки …

8
Що відбувається зі сміттям у C ++?
У Java є автоматичний GC, який час від часу зупиняє світ, але піклується про сміття на купі. Тепер додатки C / C ++ не мають цих STW заморожувань, а також використання їх пам'яті не зростає нескінченно. Як досягається така поведінка? Як опікуються мертвими предметами?

3
Чому специфікації виключень погані?
Ще в школі близько 10 років тому вони вчили вас використовувати специфікатори виключень. Оскільки мій досвід є одним із них, програмістів Torvaldish C, який вперто уникає C ++, якщо не змушений до цього, я стикаюся лише на C ++, і коли я все ще використовую специфікатори виключень, оскільки саме цього …

11
Чому у C ++ є "невизначена поведінка" (UB), а інші мови, такі як C # або Java, не мають?
Цей пост переповнення стеку містить досить вичерпний перелік ситуацій, коли специфікація мови C / C ++ заявляється як "невизначена поведінка". Однак я хочу зрозуміти, чому інші сучасні мови, такі як C # або Java, не мають поняття "невизначена поведінка". Це означає, що дизайнер компілятора може керувати всіма можливими сценаріями (C …

3
C ++ сильно набрав typedef
Я намагався придумати спосіб декларування сильно набраних типів, щоб знайти певний клас помилок на етапі компіляції. Часто буває так, що я набираю int на кілька типів ідентифікаторів, або вектор для позиціонування або швидкості: typedef int EntityID; typedef int ModelID; typedef Vector3 Position; typedef Vector3 Velocity; Це може зробити намір коду …
49 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
Пояснення про те, як “Скажи, не питай” вважається хорошим ОО
Цей допис для блогу був розміщений на Hacker News з кількома оновленнями. Походить із С ++, більшість із цих прикладів, здається, суперечать тому, чого я вчив. Такі як приклад №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 &gt; …

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

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

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

4
Як міг записати перший компілятор C ++ в C ++?
Stroustrup стверджує, що 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.