A constructor should put an object into an initial, safe state.
You also need to make sure the object is constructed properly in the default condition.
The destructors include proper clean - up functions. This clean - up pertains to releasing system memory that the object acquired at some point.
Identifying the Public Interfaces
Minimum Public Interface
Makes the class as concise as possible.
The goal is to provide the user with the exac interface to do the job right.
Creating a class is a business proposition, and as with all steps in the design process, it is very important that the users are involved with the design.
Hiding the Implementation
Has already been covered in great detail.
A class is most useful if the implementation can change without affecting the users.
Modeling Real - World Systems
One of the primary goals of OOP is to model real-world systems in ways similar to the ways in which people actually thinks
Designing classes is the object - oriented way to create these models.
When creating classes, you should design them in a way that represents the true behavior of the object.