You will understand the hardware better if you learn C and Assembly. However, except for the syntactic sugar aspects of C++, it degenerates into a boondoggle because of all its weirdness and corner cases. The buggiest software has always been written in C++. It has the most complex language spec and is the hardest to debug because of those obscure corner cases. As programming consists mostly of debugging, extensive use of C++ virtually guarantees needless pain, wasted time, and bugs that won't go away.