I\'m an old (but not too old) Java programmer, that decided to learn C++. But I have seen that much of C++ programming style, is... well, just damn ugly!
All that stuff
Separate declaration and definition is the least of the differences between C++ and Java. The major difference in modern C++ is the importance of "value semantics".
Due to the lack of garbage collection but the excellent support for building types that behave like self-contained values, good C++ style involves writing well-behaved value types, with consistent construction, copy-construction, assignment, swap and destruction.
Swap in particular is a very important one to remember because it's not directly supported by the language but it really should be there in any value-like type.
Look at how the standard C++ library works, and how it expects your types to behave.
Try to aim (not always possible) for a total absence of naked pointers or uses of the new operator. Hide such details inside classes that ensure they are used correctly, wrapping them up in value semantics.