Chuck Guzis wrote:
On 21 Dec 2006 at 21:08, Michael B. Brutman wrote:
No need to fear C++. It's just C with some
extras.
Not exactly--I've written plenty of C++ and find that the language
features are like chocolate--enough is wonderful, too much is
nauseating.
The uncertainty about libraries and such to me is the issue of memory
management--it's sort of hard to have constructors and destructors
without some sort of memory manager. OTOH, C can live just fine with
nothing more than a stack.
Well, here you have a basic misunderstanding of how C++ works.
Constructors and destructors require a little more tracking, but it does
not require a memory manager. A constructor runs when an object is
created, and the destructor runs when it goes out of scope. If you are
working with objects on the stack then additional memory management is
not needed - the compiler generates extra code to call the destructor as
appropriate.
And that assumes you use destructors. My objects generally have
constructors for initialization, but never destructors. I revert back
to a more 'C' like technique of having a function that handles cleanup,
if it's needed. The best way to avoid forgetting to do cleanup is to
avoid putting yourself into a situation where cleanup is necessary. :-)
Destructors are one way to do that, good design is another.
Here's where I draw my own (somewhat arbitrary)
line--applications-
type user-mode code is great with C++, particularly if you have your
own class libraries all built up. If you have a memory leak or
dangling reference, it'll end up crashing your application, but the
system itself will likely keep chugging right along.
But if I'm going to write a device driver, TSR, or some other bit of
SYSTEM code in a HLL where memory utilization must be predicable and
well-behaved, I'll take C, thank you.
I don't understand again. I can write C code that is ugly too. C++ is
C with some extra syntactic sugar. If you use dumb functions in C,
you'll get bad system code too. This is just the stereotype of object
oriented languages being bloated/unpredictable, which is not necessarily
true.
I had a friend at Big Blue who told me he could do OO in RPG, or
assembler in C++. The choice was his.
Just an old fogie speaking, so ignore if you wish.
Cheers,
Chuck