C# permette l'uso dei puntatori marcando il codice come unsafe, cosa che VB non permette... C++ permette di usare .Net con le estensioni managed e in più permette di continuare a programmare anche in "codice nativo" (anche se anche nel codice C++ compilato in .Net rimane un po' di assembly x86, almeno fino alla beta 2 dopo non so).
C++ è comunque più complesso da imparere sia di vb che di c#.