Bé, C# viene usato quando bisogna fare in modo semplice applicazione con interfaccia grafica e quanto l'aspetto principale del programma non sono le prestazioni. Inoltre tieni conto che un'applicazione C# non è utilizzabile all'infuori di Windows e che devi aver installato il Framework .NET per poterla utilizzare.
C++, invece, non permette di realizzare in modo comodo e veloce applicazioni visuali ma ha delle prestazioni migliori. Inoltre il codice C++ è portable.
Altra considerazione è sulla sicurezza: i sorgenti compilati in C# non producono un applicativo in linguaggio macchina, ma in un linguaggio che è a metà tra il linguaggio C# è il linguaggio macchina (e si chiama appunto IL, Intermediate Language) che poi viene tradotto dal Framework in linguaggio macchina al momento dell'esecuzione: quindi è molto semplice ricavare il sorgente originale da quello in IL. A questo proposito leggi qui. È un articolo scritto per VB.NET ma le considerazioni fatte valgono anche per C#.
Il C++, invece, produce applicazioni direttamente in linguaggio macchina e quindi più difficili da decompilare.
Spero di aver risposto alla tua domanda.![]()
![]()