In the preceding section, we showed how to promote software reusability by separating a class definition from the client code (e.g., function main
) that uses the class. We now introduce another fundamental principle of good software engineering—separating interface from implementation.