Indeed C++ doesn't provide any libraries for GUI by default. In Windows you can use WinAPI and MFC for GUI but in this case you'll lose portability. There are third-party widget toolkits for C++ - Qt, wxWidgets, Ultimate++ to name a few. They are implemented in C++ but they are not part of the language standard.

Java primarily uses AWT for GUI, not XML at least for desktop apps. If you need a language with GUI routines I'd peek Java or C#. (I'm using Java heavily.) It's useful for research projects etc.

If you just need to get familiar with modern trends in programming C++, Java and C# are overall very similar. If you want to try something significantly different, try Haskell or Prolog.