Pytania otagowane jako c++

Pytania na temat C ++, skompilowanego, uniwersalnego języka programowania o typie statycznym, o dowolnej formie, z wieloma paradygmatami.

7
Po co deklarować zmienną w jednym wierszu, a przypisywać do niej w następnym?
Często widzę w kodach C i C ++ następującą konwencję: some_type val; val = something; some_type *ptr = NULL; ptr = &something_else; zamiast some_type val = something; some_type *ptr = &something_else; Początkowo założyłem, że był to nawyk, który pozostał z czasów, kiedy trzeba było zadeklarować wszystkie zmienne lokalne na początku …
101 c++  c 

14
Czy pisanie kodu opartego na optymalizacji kompilatora jest złą praktyką?
Uczyłem się trochę C ++ i często muszę zwracać duże obiekty z funkcji tworzonych w ramach funkcji. Wiem, że istnieje przejście przez referencję, zwrócenie wskaźnika i zwrócenie rozwiązań typu referencyjnego, ale przeczytałem również, że kompilatory C ++ (i standard C ++) pozwalają na optymalizację zwracanych wartości, co pozwala uniknąć kopiowania …
99 c++  performance 



8
Czy lepiej dokumentować funkcje w pliku nagłówkowym lub źródłowym?
Czy w językach, w których rozróżnia się pliki „źródłowe” i „nagłówkowe” (głównie C i C ++), lepiej udokumentować funkcje w pliku nagłówkowym: ( sprowadzony z 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
Czy twórcy oprogramowania Java świadomie porzucili RAII?
Jako długoletni programista C #, ostatnio przyjechałem, aby dowiedzieć się więcej o zaletach pozyskiwania zasobów to inicjalizacja (RAII). W szczególności odkryłem, że idiom C #: using (var dbConn = new DbConnection(connStr)) { // do stuff with dbConn } ma odpowiednik C ++: { DbConnection dbConn(connStr); // do stuff with dbConn …
82 java  c#  c++  language-design 

15
Dlaczego kiedykolwiek Java byłaby szybsza niż C ++?
Czasami Java przewyższa C ++ w testach porównawczych. Oczywiście czasami C ++ osiąga lepsze wyniki. Zobacz następujące linki: 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/ Ale jak to w ogóle możliwe? Dziwi mnie, że interpretacja kodu bajtowego może być szybsza niż skompilowany język. Czy ktoś może wyjaśnić? Dzięki!
79 java  c++  performance 





3
Dlaczego Python jest napisany w C, a nie w C ++?
W samouczku Pythona można przeczytać, że oryginalna implementacja Pythona jest w C; Z drugiej strony implementacja Pythona, napisana w C, (...) Jestem bardzo ciekawy, dlaczego Python został napisany w C, a nie w C ++? Chciałbym poznać uzasadnienie tej decyzji, a odpowiedź powinna być poparta odniesieniami historycznymi (a nie opartymi …

6
Czy `catch (…) {throw; } `zła praktyka?
Chociaż zgadzam się, że łapanie ... bez ponownego rzucania jest rzeczywiście złe, uważam jednak, że przy użyciu takich konstrukcji: try { // Stuff } catch (...) { // Some cleanup throw; } Jest akceptowalny w przypadkach, w których RAII nie ma zastosowania . (Proszę, nie pytaj ... nie wszyscy w …
74 c++ 


3
Jaki jest powód nieużywania [[nodiscard]] C ++ 17 prawie wszędzie w nowym kodzie?
C ++ 17 wprowadza [[nodiscard]]atrybut, który pozwala programistom oznaczać funkcje w taki sposób, że kompilator generuje ostrzeżenie, jeśli zwracany obiekt zostanie odrzucony przez program wywołujący; ten sam atrybut można dodać do całego typu klasy. Przeczytałem o motywacji tej funkcji w oryginalnej propozycji i wiem, że C ++ 20 doda atrybut …
70 c++ 

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.