Bryan Sant wrote: > Oh the joys of life with manual memory management :-)
Manual memory management is often, in my opinion, a huge plus of C and C++. With reference-counting smart pointers and destructors, memory management in C++ is very straight-forward, fast, and safe. Just understanding a bit about how C++ does scoping, and you can very easily build and destroy entire data structures all without a single leak and without having to rely on a garbage collector. Not saying a GC is bad; simply that it's not always necessary. With only a few caveats, C++ programmers can easily move to programming in Java and dealing with the GC dropping references right and left. But it rarely works the other way. 9/10 core dumps in the BYU CS 240 class are because of Java. It pollutes C++ programmers like nothing else! One of the caveats for C++ programmers is the way that C++ guarantees destruction when an object goes out of scope, especially when you rely on the side effects. Guaranteed destruction doesn't translate directly into Java, although the "finalize" keyword can help (if I recall correctly). A good article on the idea is at http://royontechnology.blogspot.com/2007/01/deterministic-destruction-of-objects-in.html It's always fun to catch java-isms in C or C++ code, the most prominent one is the "type var = new type" expression, which is often used where a static declaration would be far better (in C or C++). Of course using smart pointers (reference-counting objects that hold a pointer), the paradigm for use is much more java-like. > > -Bryan > > /* > PLUG: http://plug.org, #utah on irc.freenode.net > Unsubscribe: http://plug.org/mailman/options/plug > Don't fear the penguin. > */ > /* PLUG: http://plug.org, #utah on irc.freenode.net Unsubscribe: http://plug.org/mailman/options/plug Don't fear the penguin. */
