C-i--~ programming style

Preface. Introduction. Bibliographic Notes. 1. Abstraction. Style Example: Pricing Computers. Finding a Common Abstraction. Differences Between Classes. Reintroducing Inheritance. Removing the Enumerations. Summary. Bibliographic Notes. Exercise. 2. Consistency. Style Example: Class string. Well-defined State. Consistent Physical State. Class Invariants. Consistent Use of Dynamic Memory. Deallocating Dynamic Memory. Style Example: A Second Approach. Summary. Bibliographic Notes. Exercises. 3. Unnecessary Inheritance. Style Example: Stacks. Inheritance Scope Rules. Inheritance Relationships. Encapsulation. Interface versus Implementation. Templates. Summary. Bibliographic Notes. Exercise. 4. Virtual Functions. Style Example: Vehicles and Garages. Consistency. Base Destructors. Inheritance. Coupling. Summary. Bibliographic Notes. Exercise. 5. Operator Overloading. Operator Overloading Basics. Style Example: Class FileArray. Inheritance for Implementation. A Programming Tradeoff: Overloaded Operators versus Member Functions. Summary. Bibliographic Notes. Exercises. 6. Wrappers. A C Library. Style Example: A C++ Wrapper for dirent. Multiple Directory Objects. Constructor Failure. Public Access to Failure State. Error Condition Argument. Summary. Bibliographic Notes. Exercise. 7. Efficiency. Style Example: Class BigInt. Exercising BigInt. The Length of Dynamic Strings. The Number of Dynamic Strings. The Client Code. Rewriting BigInt. Summary. Bibliographic Notes. Exercises. 8. A Case Study. Style Example: Finite State Machines. Initialization. Coupling. Cohesion. Modules versus Abstract Data Types. Generalization. Bibliographic Notes. Exercises. 9. Multiple Inheritance. Ambiguities under Multiple Inheritance. Directed Acyclic Inheritance Graphs. Exploring Virtual Base Classes. Style Example: Class Monitor. Style Example: A Virtual Base Class. Multiple Protocol Inheritance. Summary. Bibliographic Notes. Exercises. 10. Summary of Rules. Index. 0201563657T04062001