Basically, pretty much anything you can create in C#, you can create in C++ or Java (especially now Xamarin is part of Visual Studio).
The only difference is that C++ can be used across a wider pool of "target" processors and systems (C++ cross compilers exist for pretty much every processor (even eight bit - there is at least one Z80 C++ compiler) where C# is only available where .NET (or equivelant: Mono for Linux, Xamarin for Android / iOS) will run.
And Java can also be used where C# can't - as long as the Java Virtual Machine runs there, so cn Java code (this includes smartcards:
Java (software platform) - Wikipedia[
^])
There are places you can use C# that you can't use Java or C++ - the server side code for a website for example - but in most cases you could use any of them anywhere.
Just don't assume "i feel can understand both c++ & java because i know c#": theay are very different languages that share some common syntax, and if you try to do things "the C# way" in C++, you will probably make a very nasty app. Particularly if you try to do it in a native app: without the CLR, C++ does not provide garbage collection, so memory deallocation is up to you the programmer for example.
We can't say "use C# for these projects, but Java / C++ for those" because there is no clear line: they are interchangeable for whole projects (but probably not within a project, it's not going to work too well if you try to use both C# and Java together!)