How C++ differs from C

This probably has been thought of before, but, I had to get it off my chest.

C allows you to shoot yourself in the foot.

C++ allows you to instantiate an object of type Pistol, a descendant of the virtual class Gun, which, when initialized with at least one object of type Bullet, an opaque class you imported from someone else’s foundry, allows you to shoot yourself in the foot.

Punoqllads walks off stage L., murmuring something unprintable regarding debugging Other Peoples’ Code.

But you can reuse the bullet.

I’ve always enjoyed, “C++ is C with object-oriented functionality bolted on the side.”

No, no, no…
C++:

You create a dozen instances of yourself and shoot them all in the foot. Providing emergency medical care is impossible since you can’t tell which ones are bitwise copies and which ones are just pointing at each other and saying “That’s me, over there.”

[sub]Jeez, you guys wouldn’t believe how hard all that was to type after four 7.0% beers (Big Hole Mythical White; ask for it the next time you’re in Montana!).[/sub]

C++ is one louder, isn’t it?

[ORWELL]
Isn’t C++ simply an extremely excellent version of C?
[/ORWELL]

How about, “C++ is like a colostomy bag taped to C’s abdomen. It works, but its not terribly elegant.”