c++-faq

Jakie są typowe nieokreślone zachowania, o których programista C++ powinien wiedzieć? [zamknięte]

Jakie są typowe nieokreślone zachowania, o których programista C++ powinien wiedzieć? Powiedz jak: a[i] = i++;

Kiedy mogę użyć deklaracji forward?

Szukam definicji kiedy wolno mi zrobić forward deklaracji klasy w pliku nagłówkowym innej klasy: Czy Mogę to zrobić dla klasy bazowej, dla klasy posiadanej jako członek, dla klasy przekazanej do funkcji członka przez odniesienie, itp. ?

Jakie są zasady używania podkreślenia w identyfikatorze C++?

W C++ często nazywa się zmienne członkowskie jakimś prefiksem określającym fakt, że są to zmienne członkowskie, a nie zmienne ... tualnie po prostu. NET) wydaje się zalecać używanie tylko podkreślenia, jak w _foo. Czy jest to dozwolone przez standard C++?

Jaka jest ścisła zasada aliasingu?

Pytając o powszechne, nieokreślone zachowanie w C, dusze bardziej oświecone niż ja odwołałem się do ścisłej zasady aliasingu. O czym oni mówią?

Co oznacza T& & (double ampersand) w C++11?

Przyglądałem się kilku nowym funkcjom C++11 i jedną z nich zauważyłem jest podwójne ampersand w deklarowaniu zmiennych, takic ... ka wydaje się być podwójnym odniesieniem (jak podwójne wskaźniki w stylu C T** var), ale trudno mi myśleć o przypadku użycia.

Jak używać tablic w C++?

C++ odziedziczył tablice z C, gdzie są używane praktycznie wszędzie. C++ dostarcza abstrakcje, które są łatwiejsze w użyciu i ... w pierwszej kolejności, więc Twoja odpowiedź jest bardzo prawdopodobne, aby przeczytać przez tych, którzy wpadli na pomysł.)

Dlaczego sizeof dla struktury nie jest równy sumie sizeof każdego elementu?

Dlaczego operator sizeof zwraca rozmiar większy dla struktury niż całkowite rozmiary jej elementów?

Zasady unieważniania iteratora

Jakie są zasady unieważniania iteratorów dla kontenerów C++? Najlepiej w formacie listy podsumowującej. (uwaga: jest to wpi ... w pierwszej kolejności, więc twój odpowiedź jest bardzo prawdopodobne, aby przeczytać przez tych, którzy wpadli na pomysł.)

Po co używać pozornie bezsensownych instrukcji do-while I if-else w makrach?

W wielu makrach C / C++ widzę kod makra zawinięty w coś, co wydaje się być bezsensowną pętlą do while. Oto przykłady. #defi ... ) if (1) { f(X); g(X); } else Nie widzę, co robi do while. Dlaczego nie napisać tego bez tego? #define FOO(X) f(X); g(X)

Jak zaimplementować Klasyczne algorytmy sortowania we współczesnym C++?

Algorytm std::sort (i jego kuzyni std::partial_sort i std::nth_element) z biblioteki standardowej C++ jest w większości imple ... zyku C++14. W stosownych przypadkach oznaczam różnice składniowe i biblioteczne, w których różne wersje językowe się różnią.

Jak działa proces kompilacji / łączenia?

Jak działa proces kompilacji i łączenia? (Uwaga: Jest to wpis do Stack Overflow ' S C++ FAQ . Jeśli chcesz krytykować pom ... ierwszej kolejności, więc Twoja odpowiedź jest bardzo prawdopodobne, aby przeczytać przez tych, którzy przyszli z pomysłem.)

C++11 rvalues and move semantyka confusion (return statement)

Próbuję zrozumieć referencje rvalue i przenieść semantykę C++11. Jaka jest różnica między tymi przykładami, a który z nich n ... ector<int> tmp {1,2,3,4,5}; return std::move(tmp); } std::vector<int> &&rval_ref = return_vector();

Nieokreślone, nieokreślone i zdefiniowane w implementacji zachowanie

Jaka jest różnica między niezdefiniowanym, nieokreślonym i zdefiniowanym w implementacji zachowaniem w C i C++?

"std:: endl" vs " \n"

Wiele książek C++ zawiera przykładowy kod, taki jak ten... std::cout << "Test line" << std::endl; ...więc zaws ... "Test line\n"; Czy Jest jakiś techniczny powód, aby preferować jedno nad drugim, czy jest to tylko kwestia stylu kodowania?

Dlaczego iostream:: eof znajduje się wewnątrz warunku pętli (np. ' while (!strumień.eof (`)') uznane za błędne?

Właśnie znalazłem komentarz w tej odpowiedzi mówiącej, że używanie iostream::eof w warunku pętli jest "prawie na pewno złe" ... hile (!cin.eof()) jest błędne? Czym się różni od używania scanf("...",...)!=EOF w C (którego często używam bez problemów)?

Jaka jest różnica między "stl" A "C++ Standard Library"?

Ktoś przyniósł Ten artykuł do mojej uwagi, że twierdzi (parafrazuję) termin STL jest niewłaściwie używany w odniesieniu d ... ęc nie mogę ocenić poprawność artykułu. Czy powinienem powstrzymać się od używania terminu STL? A może to odosobniona opinia?

Co to jest połączenie zewnętrzne i wewnętrzne?

Chcę zrozumieć powiązania zewnętrzne i wewnętrzne oraz ich różnicę. Chcę też poznać znaczenie const zmienne wewnętrznie łączą się domyślnie, chyba że podano inaczej jako extern.

Co to jest copy elision I return value optimization?

Co to jest copy elision? Co to jest (nazwana) optymalizacja wartości zwrotnej? Co to oznacza? W jakich sytuacjach mogą wystą ... pytania, prawdopodobnie szukasz wstęp. przegląd techniczny znajduje się norma odniesienia. Zobacz typowe przypadki tutaj .

Rozwiązywanie błędów budowania z powodu kolistej zależności między klasami

Często znajduję się w sytuacji, gdy napotykam wiele błędów kompilacji / linkera w projekcie C++ z powodu złych decyzji projek ... rgv[]) { A a(10); B b(3.14); a.Print(); a.SetB(&b); b.Print(); b.SetA(&a); return 0; }

Jak przekazać obiekty do funkcji w C++?

Jestem nowy w programowaniu C++, ale mam doświadczenie w Javie. Potrzebuję wskazówek jak przekazywać obiekty do funkcji w C++ ... która zawiera odniesienia do obiektów. Byłoby świetnie, gdybyś mógł również wyjaśnić, gdzie korzystać z każdej z tych opcji.