I'm not sure how accurate the professor was, but he explained that C++ is the evolution of C..like C version 3.0 etc. Whereas C# and all the others are like different product lines. cin/cout in C++ is really nice.
C++ is not a new version of C. It is a different version of C with Object Oriented Design. Since no processor has true Object definitions - C is "closer" to the hardware and assembler. The distance from C to Assembler is "small" - the distance from C++ to Assembler is a lot bigger. The distance from C# to Assembler is HUGE.
So if you want to learn why your hardware is doing what it is doing... C is the "closest" you get without writing Assembly code. And if you know C - C++ or C# are just "additions"
Just try to run a disassembler on a piece of C++ object code - and try to find each C++ line in the "disassembled" code. That can be very hard especially if you have inherited objects etc. Do the same on some pure ANSI C / KR C code and you can more or less map - line by line(s) - each statement from your C coding. If you disable compiler optimizations it is even easier.
So for first steps in Embedded - and to get to know your hardware C is great. (Assembler is still better - but not to many people learns Assembler any longer)
Once you know your hardware and compiler and how it "throws" things around in the optimizations etc. C++ and other languages are great.
But if you started with Java and want to "upgrade" then start with C++. Else it can feel a bit constrained working in pure C without objects.
The "Sharp" (C#,F#,J#) products are also great - but usually very limited support for execution outside of Microsoft environments. There are some support but usually the support is a few generations behind and might not support all functions (Mono on OSX or Linux)
As a programmer you should not be limited to a single language. A language is a tool - just like a screwdriver. And then you pick the RIGHT tool for the RIGHT task.
My "main" tools are C#, C, Erlang and Python - and each have their good and bad sides and are used for different things. C# for GUI on Windows (with some experiments on OSX) - C for high performance single threaded apps and Erlang for giga multithreaded multi machine distributed apps. And Python for all the rest..