Kod C jest zwykle prawidłowym kodem C ++.
Główne problemy z C ++ używają go niepoprawnie ( Linus Torvalds nienawidzi go z tego powodu , miał również kilka innych problemów z przenośnością biblioteki, więc przy zakupie pracuje na poziomie systemów operacyjnych i musi być w stanie uruchamiać rzeczy na każdym losowym chip tam).
Na przykład prawie nie ma przewagi przy użyciu tablicy stylów [] nad c ++ std :: vector <> (lub podobnym pojemnikiem).
Wektory są bezpieczne dla typów i można je sprawdzić (można uzyskać dostęp do elementów za pomocą metody get () lub [], nawet jeśli nie używasz metody sprawdzania tablic, możesz nadal sprawdzać rozmiar, zamiast umieszczać go wskaźnikiem).
Ale wektory mogą być wolniejsze, jeśli na przykład nie zadeklarujesz domyślnego rozmiaru w konstruktorze. Również dodawanie elementów do wektora może powodować spowolnienia, jeśli będzie on wymagał zmiany rozmiaru. C ++ 11 ma także wiele zalet, takich jak jednolita inicjalizacja (możesz teraz deklarować i inicjować wektory za pomocą tej samej składni), a istnieją konstruktory ruchu, które pozwalają ci uniknąć kopiowania. Możesz nawet tworzyć własne niestandardowe inicjalizatory (jeśli z jakiegoś powodu chcesz zrobić coś innego niż użycie malloc).
Lub oczywiście, jeśli musisz zmienić rozmiar rzeczy, to wektory są jeszcze łatwiejsze do zrobienia, nie musisz bawić się w malloc, ręcznie kopiować rzeczy i tak dalej.
C ++ daje ci kod zorientowany obiektowo. Po skompilowaniu będzie równie wydajna, ponieważ jest to po prostu abstrakcja dla ludzi pracujących z kodem. Chociaż rzeczy takie jak konstruktory mogą spowolnić tworzenie obiektów. Ale albo będziesz potrzebował konstruktora, aby ustawić wartości domyślne, albo w inny sposób możesz zainicjować obiekty bez użycia konstruktora (pomijając ()).
Ale orientacja obiektowa znacznie ułatwia programowanie gier . Gry często dotyczą przedmiotów.