Mniej więcej rok temu byłem na tej samej łodzi, co ty: samoukałem c # dev, który czuł potrzebę nauki C ++. Oczywiście, zatrzymałem się i zacząłem wiele razy. Przy trzeciej próbie w końcu udało mi się.
Konieczne jest zrozumienie, że pod względem metodologii C ++ i C # prawdopodobnie poświęcisz dużo czasu na zrozumienie, jakie metody manipulacji danymi za pomocą wskaźników i referencji naprawdę oznaczają, a także kiedy i jak z nich korzystać w danych okolicznościach.
Zaletą C ++ jest to, że alokacja stosu obiektów jest w większości dość prosta i powinieneś alokować obiekty w ten sposób, jeśli twój program spełni wymagania określone w tej metodzie. W przeciwnym razie polegasz na wskaźnikach prędkości, wydajności i szybkiego czyszczenia. Zalecam przeczytanie tego: http://www.parashift.com/c++-faq-lite/, ponieważ da Wam DUŻO techniczne zrozumienie, jak C ++ działa pod maską.
Dam ci przykład:
W C ++ istnieje ta implementacja konstruktora znana jako „lista inicjująca”, która różni się od inicjowania elementów klasy w treści konstruktora. Czemu? Ponieważ, chyba że inicjowany typ jest prymitywny, kompilator faktycznie utworzy wiele niepotrzebnych kopii tworzonego obiektu, gdy zostanie przydzielony w ciele ctora. Może to potencjalnie zmniejszyć wydajność, w zależności od kompilatora, a także skalowanych wymagań aplikacji.
Wiesz, kim jest delegat? Cóż, w C ++ jest znany jako wskaźnik funkcji . Na początku ten język jest dość trudny do opanowania, ale jeśli chcesz być niesamowity ... to zdecydowanie wymagany.
C # jest łatwe ... bardzo łatwe.