Il codice C è normalmente un codice C ++ valido.
I problemi principali con C ++ lo stanno usando in modo errato ( Linus Torvalds lo odia per questo motivo , ha avuto anche altri problemi con la portabilità della libreria e quindi compra sta lavorando a livello di sistema operativo e deve essere in grado di eseguire le cose su ogni casuale chip là fuori).
Ad esempio, non c'è quasi alcun vantaggio nell'usare un array cstyle [] su un c ++ std :: vector <> (o un contenitore simile).
I vettori sono dattiloscritti e possono essere controllati i limiti (è possibile accedere agli elementi utilizzando get () o [], anche se non si utilizza il metodo di verifica dell'array è comunque possibile eseguire una query sulle dimensioni anziché spostarle con il puntatore).
Ma i vettori possono essere più lenti se, ad esempio, non si dichiarano le dimensioni predefinite nel costruttore. Anche l'aggiunta di elementi a un vettore può causare rallentamenti se è necessario un ridimensionamento. C ++ 11 aggiunge anche molti vantaggi come l'inizializzazione uniforme (ora puoi dichiarare e inizializzare i vettori usando la stessa sintassi) e ci sono costruttori di spostamento che possono permetterti di evitare la copia. Puoi persino creare i tuoi inizializzatori personalizzati (se per qualche motivo volessi fare qualcosa di diverso dall'uso di malloc).
Oppure, se hai bisogno di ridimensionare le cose, allora i vettori sono ancora più facili da fare, non devi scherzare con malloc, copiare manualmente le cose e così via.
C ++ ti dà codice orientato agli oggetti. Una volta compilato sarà altrettanto efficace poiché è davvero solo un'astrazione per gli umani che lavorano con il codice. Sebbene cose come i costruttori possano rallentare la creazione di oggetti. Ma avrai bisogno del costruttore per impostare i valori predefiniti o altrimenti puoi inizializzare gli oggetti senza usare il costruttore (tralasciando il ()).
Ma l'orientamento agli oggetti rende la programmazione dei giochi molto più semplice. I giochi spesso hanno a che fare con oggetti.