Jeżeli twierdzisz, że "Moja wiedza z c++ myślę, że jest bardzo dobra do momentu klas" to podejrzewam, że znasz pętle, tablice, instrukcje warunkowe, no i umiesz tworzyć metody w zakresie jednej klasy. Być może potrafisz się jeszcze posługiwać strumieniami. Dalsza ścieżka jest według mnie niezależna od języka. W zasadzie wszystkie środowiska obiektowe bazują na tych samych zasadach. Nauczysz się jednego, a przeniesienie do innego języka nie będzie problemem. Poszukaj sobie czegoś na temat dziedziczenia, hermetyzacji, metod wirtualnych, przesłaniania, różnicy pomiędzy metodami i właściwościami instancyjnymi i statycznymi. Wypróbuj to w znanym sobie środowisku. Na tym etapie nie warto zmieniać języka na inny tylko dlatego, że "w C# pisze się łatwiej niż C++". Pewnie jest to prawda, ale stracisz czas na uczenie się szczegółów, a potrzebne Ci solidne podstawy..