Есть обычный, обычный, основанный на стандартах ISO C ++ , который, вероятно, вы видите в учебниках. Если вы хотите писать приложения для Windows на обычном C ++, вы, вероятно, будете ориентированы на Win32 API (или используете набор классов, которые обертывают базовые функциональные возможности Win32 API, такие как MFC).
Тогда есть C ++ / CLI , который почти можно рассматривать как совершенно новый язык (хотя и расширенный набор C ++), который включает расширения Microsoft в Для поддержки .NET Framework. Он стандартизирован как ECMA-372 . .NET Framework работает поверх CLR, поэтому версия C ++, совместимая с CLR, называется «C ++ / CLI».
Вы, вероятно, хотите прямо сейчас полностью игнорировать вариант языка C ++ / CLI. Это действительно полезно только в сценариях взаимодействия с кодом .NET. Так как вы, кажется, хотите изучать C ++, дополнительные вещи из CLI будут просто отвлекать внимание. Вы хотите изучить real C ++, а не .NET Framework, привитую поверх C ++. Если вы хотите изучать .NET, вместо этого начните с C # или VB.NET.
Немного больше информации о различиях между C ++ и C ++ / CLI доступно в мой ответ здесь .