Pisałem C ++ intensywnie między 8 a 10 lat temu. Od tego czasu przeszedłem do C # z powodów zawodowych. Jednak od czasu do czasu widzę takie wypowiedzi
„Jeśli nadal ręcznie śledzisz odniesienia do wskaźników, robisz to źle”
lub
„C ++ jest całkowicie bezpieczny, pod warunkiem, że używasz nowoczesnych koncepcji, takich jak RAII, i nie ręcznie alokujesz pamięci, jak odzyskujący programista C.”
Oba były standardową procedurą dziesięć lat temu. Widziałem, że w ostatnim czasie znacznie poprawiono C ++; W szczególności C ++ 0x wydaje się mieć nowe możliwości. Jaki jest najlepszy zasób dla programisty „C / old C ++”, aby złapać się na „nowoczesnych” wzorcach i praktykach C ++?
c++
design-patterns
c
programming-practices
c++11
GWLlosa
źródło
źródło
Odpowiedzi:
Może to mieć więcej wspólnego z materiałami instruktażowymi niż z większością innych rzeczy, ale 8-10 lat temu wydaje mi się, że sposób, w jaki język był używany, bardzo się różnił. Dzisiejszy nacisk kładzie się bardziej na wykorzystanie szablonów, bezpieczeństwo typów i ogólne programowanie, gdzie wcześniej było więcej strachu przed tym wszystkim, a ludzie skupiali się prawie wyłącznie na C z aspektami obiektowymi.
Zmieniają się także materiały instruktażowe. Podczas gdy przed standardową książką dla początkujących w C ++ prowadziłbyś przez printf, scanf itp., Prawie nie widzisz ich w książkach z nowoczesnym podejściem.
Niektóre dobre książki to jedna z czerwonych książek. Wyjątkowy C ++, Więcej wyjątkowych C ++, Metaprogramowanie szablonów C ++, Nowoczesny design C ++, Przyspieszone C ++ ...
Myślę, że dobrym przykładem może być spojrzenie na to, gdzie obecnie pracuję. Przyszedłem tutaj, używając C ++ w nowoczesny sposób i wydaje się, że większość programistów nawet nie wie, co robię i dlaczego. Na przykład tworzenie obiektów z operatorem () ... Musiałem skomentować piekło przy każdym wystąpieniu bind () i ostatecznie kazano mu zrzucić cały ten kod. Nie wiem, co robią inicjalizatory ... To było naprawdę dziwaczne i trudne.
źródło
Aby uzyskać szybki nadzór nad nowoczesnymi funkcjami prezentowanymi całkiem nieźle, nie pomyliłbyś się, oglądając ostatnią prezentację Herb Sutter , „Pisanie nowoczesnego kodu C ++: jak C ++ ewoluował przez lata” funkcji C ++ na // build /.
Mówi o tym, dlaczego jest to lepszy język niż C # (oczywiście - Microsoft regularnie zmienia spodnie, a dziś noszą modę C ++, więc będą to szeptać, po prostu podnieśli C # jako odpowiedź na głód na świecie dekadę temu), ale robiąc to, opisuje wszystkie dobre bity (takie jak „automatyczne” zarządzanie pamięcią i klasy STL), a następnie mówi o nowych bitach ze standardu C ++ 0x.
źródło