Запитання з тегом «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 #, нещодавно я прийшов дізнатися більше про переваги придбання ресурсів - це ініціалізація (RAII). Зокрема, я виявив, що ідіома C #: using (var dbConn = new DbConnection(connStr)) { // do stuff with dbConn } має еквівалент С ++: { 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-comppare-c-java-python-ruby-jython-jruby-groovy/ http://blog.cfelde.com/2010/06/c-vs-java-performance/ Але як це можливо навіть? Думає, що інтерпретований байт-код міг бути швидше, ніж мова, що складена. Може хтось, будь ласка, пояснить? Дякую!
79 java  c++  performance 

5
Чому не існує систем управління пакетами для C і C ++? [зачинено]
Існує кілька мов програмування, для яких існує система управління пакетами: CTAN для TeX CPAN для Perl Pip & яйця для Python Maven для Java кабал для Haskell Самоцвіти для Рубі npm для NodeJS ящик для інтерфейсу Javascript & CSS нуль для C # композитор для PHP Чи є інші мови …
78 c++  c  builds  packages 

20
Чи добре замінити оптимізований код на читабельний код?
Іноді ви стикаєтеся з ситуацією, коли вам доведеться розширити / вдосконалити деякий існуючий код. Ви бачите, що старий код дуже худорлявий, але його також важко розширити, і для читання потрібен час. Це гарна ідея замінити його сучасним кодом? Деякий час тому мені сподобався худорлявий підхід, але зараз мені здається, що …

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

11
Чому база "для всіх об'єктів" відбивається в C ++
Stroustrup каже: "Не одразу вигадуйте унікальну базу для всіх своїх класів (клас" Object "). Як правило, ви можете обійтися без неї для багатьох / більшості класів." (Четверта редакція мови програмування C ++, розділ 1.3.4) Чому взагалі базовий клас на все погана ідея, і коли має сенс його створити?

3
Чому Python пишеться на C, а не на C ++?
У підручнику Python можна прочитати, що початкова реалізація Python знаходиться в C; З іншого боку, реалізація Python, написана на C, (...) Мені дуже цікаво, чому Python був написаний на C, а не на C ++? Мені хотілося б знати міркування цього рішення, і відповідь має підтримуватися історичними посиланнями (а не …

6
Is `catch (…) {кинути; } `погана практика?
Хоча я погоджуюся, що ловити ... без повторного скидання дійсно неправильно, проте я вважаю, що використовуючи такі конструкції: 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 ++ 20 додасть атрибут до …
70 c++ 

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.