that makes sense- C# is what Microsoft turned their J++ product into after the Sun lawsuit. Further enforcing this idea is the fact that the Early .NET Beta's had a new JVC compiler, IIRC.
C++ programmers generally feel that it has features that make it easier to write good, robust, readable and maintainable code in than in C.
If you know Java well you then already know a lot of C++ already.
I disagree myself on both of these points- within reason. C++ can be used for maintainable code.... But this ability drops off dramatically when those C++ classes need to be exposed through COM. the number of classes doubles after adding this, via the inclusion of various Class Factories as well as the requirement of each class to implement a defined set of interfaces, Such as IUnknown and IDispatch. Wether this is made any easier by ATL is another question entirely.
Additionally, Java and C++ use completely different paradigms.
C++ allows you to write C compatible code- IE- no classes or objects. Java requires ALL codfe to be written in classes.
C++ requires the programmer to manage memory. Java does so automatically via garbage collection.
C++ allows multiple inheritance, Java allows only one inheritance- multiple implementation of interfaces only. this is good, though, since if your inheriting from multiple classes, something is usually designed badly.
Lastly, C++ allows unmanaged pointers, whereby java will only let you make garbage collected references. Again- good for programming, but having the language run in a VM and constantly check references to object methods/fields can be the deal-breaker for time-critical applications.
This is why I've always thought of Java as much more similar to Visual Basic. I'd even go so far as to say that VB6 is to COM what Java is to CORBA.