When C++ was designed (in 1979), GUI was not one of its aims. C++ is great for command line programs.
C# or JAVA is designed to be visual and creating GUI is very easy.
C++ is great for high level/low level programming and does not even need a command line to work; all it needs is a compiler to convert it into native machine code which can run on any platform for which it can be compiled for.
Java is dependent on the Java Virtual Machine being installed on the platform.
C# is usually Microsoft dependent, I haven't looked into its limitations yet.
Use a language when you need it, not when one is supposedly better than the other - the operating word 'better' depends entirely on the situation.