C++ ist die Erweiterung von C.
Allerding sollte man, wenn man C beherrscht, verstehen können, wie der Compiler z.B. C++ Klassen interpretiert. Also kann ich dir leider nicht recht geben, dass es zwei verschiedene Sprachen sind. Im Prinzip beruht C++ immer noch auf C.
Und um zu verstehen wie ein PC funktioniert (also zusammenspiel hard und Software), wird kein C++ benötigt.
Und was soll das mit Maschinencode? Wenn du willst, hindert dich nichts daran, mit nem Hexeditor zu Programmieren. Man kann durchaus sagen, dass ASM Compiler 1:1 den Code in Maschienensprache umwandeln. Auserdem tut es null zur sache, da ASM glatt an die Digitaltechnik anknüpft. Bestes Beispiel sind die leichten INC/DEC/ADD/SUB/SHR/SHL/XOR/etc. befehle.