quote:You have to understand a major difference between C++ and Java, namely there is no virtual machine for C++, so that means the GUI part depends entirely on the operating system.
Well that's partly true. C++ doesn't know anything about colors, mice, windows, keyboards, networks, scanners, printers, file systems, databases, or anything like that. Consequently, its standard library doesn't have anything that deals with the specifics of any of these devices or subsystems.
There is, however, a wealth of third party software written for use with C++ that can and does deal with specific hardware or software interfaces for systems, and some of it is quite cross-platform. There are cross-platform windowing libraries, network libraries, database systems, and so on.
The downside to this is that, unlike Java where much of this is contained in the Java standard library, these libraries are all published and maintained by different groups or people and with different levels of documentation and support. Some libraries you may have to pay for.
To learn C++, however, you do not need to know any of these third party libraries. You don't need to know MFC or how to interface with Oracle in order to get a good understanding of the C++ language. Fortunately, there are good resources available for learning the C++ language.
In my opinion, it is best to pick a book and set of resources that focus on "pure" C++. That is, C++ that uses only its standard core language features and libraries. This should help you avoid developing any unnecessary dependencies on certain third party products or any non-portable programming habits.
You will probably benefit greatly from the book "Accelerated C++" by Andrew Koenig and Barbara Moo. It is targeted to teach pure C++ to someone who already has programming experience. You might also like the book "The C++ Programming Language" by Bjarne Stroustrup. This book is currently in its third edition, and is widely regarded as the authoritative source and reference on the C++ language (apart maybe from the C++ standard, but that's a dry read)
Once you have a good understanding of C++, it's pretty easy to pick up and use any of the third party libraries for doing everything else.