a class is a definition of a data structure that can hold both data and methods. it defines what objects of the type can do.
an object is an instance of a class. it does what the class definition says it can do.
Why not member functions directly called by class itself ???
a 'class' is simply a definition, it cannot call anything. an object
of the class can call things.
it's the difference between the word "horse" and an actual living, breathing horse. "horse" defines what a horse is. but it's abstract, you cannot ride the concept of a horse. "horse" is the class. the horse in front of you is the object (also known, in C++ as the "instance"). it does everything the word "horse" implies: you can ride it.
CString myString;
CString is the class. myString is the object.
it's also valid to say that myString is a variable of type CString.