To answer your question, no you don't HAVE to learn C++, I like C++ the best... You have the most control over the code you ship, you can write your own runtimes, api, stl, etc. C++ isn't managed - faster launch time ( and if coded correctly faster runtime ), but it wont hold your hand like c#.... so don't half ass it. C++ can be reverse engineered. Where as .NET languages can be completely decompiled.
Regardless it's up to you.