I'd like to learn the differences between a struct and a class in C++. Please discuss the technical differences as well as reasons for choosing one or the other in OO design.
I'll start with an obvious difference:
If you don't specify public: or private:, members of a struct are public by default; members of a class are private by default.
I'm sure there are other differences to be found in the corners of the C++ specification.