Possible Duplicate:
When should you use a class vs a struct in C++?
When, if ever, should one use a STRUCT declaration rather than a CLASS declaration when writing a program using C++?
- Never !! ?
- Any thing...whichever makes one feel better?
Possible Duplicate:
When should you use a class vs a struct in C++?
When, if ever, should one use a STRUCT declaration rather than a CLASS declaration when writing a program using C++?
 
    
     
    
    Besides the default access level, a struct and a class are completely equivalent.
I find that the difference is mostly in the mind of a programmer - by convention, we typically use structs to put together small objects, without complex functionality - for example, a Point with just 3 members - the coordinates. POD-types.
On the other hand, we typically use classes to encompass somewhat bigger objects, with complex functionality and fairly large interface.
For example:
struct Point { 
   int x,y,z; 
};
class Shape{
   std::vector<Point> corners;
public:
   Shape(const std::vector<Point> corners);
   double getVolume();
   double getArea();
   bool   isConvex();
   //etc.
};
 
    
    The only difference between the two is that by default struct are public while class members are private.
My rule is to use struct when I mean a clump of related data without any special semantics on reading/writing them. Use class when I intend to wrap the data in richer semantics (read methods) that are more meaningful, provide any needed protection, or implement something more abstract.
