I picked this book up when it was first published in 2000, and thought it was one of the most thorough books on the subject of C++, to explain all the intricacies, the next best thing to having a professor standing next to you and explaining. Eight years later, I still think this is one of the best
Core C++: a software engineering approach
โ Scribed by Victor Shtern
- Publisher
- Prentice Hall PTR
- Year
- 2000
- Tongue
- English
- Leaves
- 975
- Edition
- 1st
- Category
- Library
No coin nor oath required. For personal study only.
โฆ Synopsis
Teaches C++ by applying the best software engineering practices and methodologies to programming in C++. Shows the user how to build code that is more robust, easier to maintain and modify, and more valuable. Softcover. DLC: C++ (Computer programming language).
โฆ Table of Contents
oreilly.com......Page 0
Safari | Core C++ A Software Engineering Approach......Page 1
Safari | Core C++ A Software Engineering Approach......Page 3
Safari | Core C++ A Software Engineering Approach......Page 5
Safari | Core C++ A Software Engineering Approach -> Preface......Page 9
Safari | Core C++ A Software Engineering Approach -> How Is This Different from Other C++ Books?......Page 10
Safari | Core C++ A Software Engineering Approach -> Who This Book Is For......Page 12
Safari | Core C++ A Software Engineering Approach -> How This Book Is Organized......Page 13
Safari | Core C++ A Software Engineering Approach -> Conventions Used in This Book......Page 14
Safari | Core C++ A Software Engineering Approach -> Accessing the Source Code......Page 15
Safari | Core C++ A Software Engineering Approach -> Feedback......Page 16
Safari | Core C++ A Software Engineering Approach -> Acknowledgments......Page 17
Safari | Core C++ A Software Engineering Approach -> I: Introduction to Programming with C++......Page 19
Safari | Core C++ A Software Engineering Approach -> 1. Object-oriented approach: What's So Good About It?......Page 21
Safari | Core C++ A Software Engineering Approach -> The Origins of the Software Crisis......Page 23
Safari | Core C++ A Software Engineering Approach -> Remedy 1: Eliminating Programmers......Page 28
Safari | Core C++ A Software Engineering Approach -> Remedy 2: Improved Management Techniques......Page 31
Safari | Core C++ A Software Engineering Approach -> Remedy 3: Designing a Complex and Verbose Language......Page 34
Safari | Core C++ A Software Engineering Approach -> The Object-Oriented Approach: Are We Getting Something for Nothing?......Page 36
Safari | Core C++ A Software Engineering Approach -> Characteristics of the C++ Programming Language......Page 46
Safari | Core C++ A Software Engineering Approach -> Summary......Page 51
Safari | Core C++ A Software Engineering Approach -> 2. Getting Started Quickly: A Brief Overview of C++......Page 52
Safari | Core C++ A Software Engineering Approach -> The Basic Program Structure......Page 54
Safari | Core C++ A Software Engineering Approach -> Preprocessor Directives......Page 57
Safari | Core C++ A Software Engineering Approach -> Comments......Page 62
Safari | Core C++ A Software Engineering Approach -> Declarations and Definitions......Page 66
Safari | Core C++ A Software Engineering Approach -> Statements and Expressions......Page 72
Safari | Core C++ A Software Engineering Approach -> Functions and Function Calls......Page 80
Safari | Core C++ A Software Engineering Approach -> Classes......Page 87
Safari | Core C++ A Software Engineering Approach -> Dealing with Program Development Tools......Page 91
Safari | Core C++ A Software Engineering Approach -> Summary......Page 95
Safari | Core C++ A Software Engineering Approach -> 3. Working with C++ Data and Expressions......Page 96
Safari | Core C++ A Software Engineering Approach -> Values and Their Types......Page 97
Safari | Core C++ A Software Engineering Approach -> Integral Types......Page 101
Safari | Core C++ A Software Engineering Approach -> Floating Point Types......Page 111
Safari | Core C++ A Software Engineering Approach -> Working with C++ Expressions......Page 114
Safari | Core C++ A Software Engineering Approach -> Mixed Expressions: Hidden Dangers......Page 127
Safari | Core C++ A Software Engineering Approach -> Summary......Page 133
Safari | Core C++ A Software Engineering Approach -> 4. C++ Control Flow......Page 134
Safari | Core C++ A Software Engineering Approach -> Statements and Expressions......Page 136
Safari | Core C++ A Software Engineering Approach -> Conditional Statements......Page 138
Safari | Core C++ A Software Engineering Approach -> Iteration......Page 159
Safari | Core C++ A Software Engineering Approach -> C++ Jump Statements......Page 173
Safari | Core C++ A Software Engineering Approach -> Summary......Page 185
Safari | Core C++ A Software Engineering Approach -> 5. Aggregation with Programmer-Defined Data Types......Page 186
Safari | Core C++ A Software Engineering Approach -> Arrays as Homogeneous Aggregates......Page 188
Safari | Core C++ A Software Engineering Approach -> Structures as Heterogeneous Aggregates......Page 211
Safari | Core C++ A Software Engineering Approach -> Unions, Enumerations, and Bit Fields......Page 218
Safari | Core C++ A Software Engineering Approach -> Summary......Page 228
Safari | Core C++ A Software Engineering Approach -> 6. Memory Management: the Stack and the Heap......Page 229
Safari | Core C++ A Software Engineering Approach -> Name Scope as a Tool for Cooperation......Page 231
Safari | Core C++ A Software Engineering Approach -> Memory Management: Storage Classes......Page 239
Safari | Core C++ A Software Engineering Approach -> Memory Management: Using Heap......Page 250
Safari | Core C++ A Software Engineering Approach -> Input and Output with Disk Files......Page 281
Safari | Core C++ A Software Engineering Approach -> Summary......Page 291
Safari | Core C++ A Software Engineering Approach -> II: Object-oriented programing with C++......Page 293
Safari | Core C++ A Software Engineering Approach -> 7. Programming With C++ Functions......Page 295
Safari | Core C++ A Software Engineering Approach -> C++ Functions as Modularization Tools......Page 297
Safari | Core C++ A Software Engineering Approach -> Argument Promotions and Conversions......Page 302
Safari | Core C++ A Software Engineering Approach -> Parameter Passing in C++......Page 305
Safari | Core C++ A Software Engineering Approach -> Inline Functions......Page 331
Safari | Core C++ A Software Engineering Approach -> Parameters with Default Values......Page 335
Safari | Core C++ A Software Engineering Approach -> Function Name Overloading......Page 341
Safari | Core C++ A Software Engineering Approach -> Summary......Page 349
Safari | Core C++ A Software Engineering Approach -> 8. Object-Oriented Programming with Functions......Page 351
Safari | Core C++ A Software Engineering Approach -> Cohesion......Page 354
Safari | Core C++ A Software Engineering Approach -> Coupling......Page 356
Safari | Core C++ A Software Engineering Approach -> Data Encapsulation......Page 368
Safari | Core C++ A Software Engineering Approach -> Information Hiding......Page 374
Safari | Core C++ A Software Engineering Approach -> A Larger Example of Encapsulation......Page 380
Safari | Core C++ A Software Engineering Approach -> Shortcomings of Encapsulation with Functions......Page 388
Safari | Core C++ A Software Engineering Approach -> Summary......Page 390
Safari | Core C++ A Software Engineering Approach -> 9. C++ Class as a Unit of Modularization......Page 392
Safari | Core C++ A Software Engineering Approach -> Basic Class Syntax......Page 395
Safari | Core C++ A Software Engineering Approach -> Binding Together Data and Operations......Page 396
Safari | Core C++ A Software Engineering Approach -> Elimination of Name Conflicts......Page 400
Safari | Core C++ A Software Engineering Approach -> Implementing Member Functions Outside of Class......Page 404
Safari | Core C++ A Software Engineering Approach -> Defining Class Objects of Different Storage Classes......Page 408
Safari | Core C++ A Software Engineering Approach -> Controlling Access to Class Members......Page 410
Safari | Core C++ A Software Engineering Approach -> Initialization of Object Instances......Page 416
Safari | Core C++ A Software Engineering Approach -> Constructors as Member Functions......Page 418
Safari | Core C++ A Software Engineering Approach -> Default Constructors......Page 421
Safari | Core C++ A Software Engineering Approach -> Copy Constructors......Page 424
Safari | Core C++ A Software Engineering Approach -> Conversion Constructors......Page 428
Safari | Core C++ A Software Engineering Approach -> Destructors......Page 430
Safari | Core C++ A Software Engineering Approach -> Timing of Constructor and Destructor Invocations......Page 435
Safari | Core C++ A Software Engineering Approach -> Class Scope and the Overriding of Names in Nested Scopes......Page 436
Safari | Core C++ A Software Engineering Approach -> Memory Management with Operators and Function Calls......Page 439
Safari | Core C++ A Software Engineering Approach -> Using Returned Objects in Client Code......Page 442
Safari | Core C++ A Software Engineering Approach -> More on the const Keyword......Page 447
Safari | Core C++ A Software Engineering Approach -> Static Class Members......Page 453
Safari | Core C++ A Software Engineering Approach -> Summary......Page 461
Safari | Core C++ A Software Engineering Approach -> 10. Operator Functions: Another Good idea......Page 462
Safari | Core C++ A Software Engineering Approach -> Overloading of Operators......Page 464
Safari | Core C++ A Software Engineering Approach -> Limitations on Operator Overloading......Page 471
Safari | Core C++ A Software Engineering Approach -> Overloaded Operators as Class Members......Page 476
Safari | Core C++ A Software Engineering Approach -> Case Study: Rational Numbers......Page 483
Safari | Core C++ A Software Engineering Approach -> Mixed Types as Parameters......Page 492
Safari | Core C++ A Software Engineering Approach -> Friend Functions......Page 500
Safari | Core C++ A Software Engineering Approach -> Summary......Page 512
Safari | Core C++ A Software Engineering Approach -> 11. Constructors and Destructors: Potential Trouble......Page 513
Safari | Core C++ A Software Engineering Approach -> More on Passing Objects by Value......Page 516
Safari | Core C++ A Software Engineering Approach -> Operator Overloading for Nonnumeric Classes......Page 522
Safari | Core C++ A Software Engineering Approach -> More on the Copy Constructor......Page 537
Safari | Core C++ A Software Engineering Approach -> Overloading the Assignment Operator......Page 551
Safari | Core C++ A Software Engineering Approach -> Practical Considerations: What to Implement......Page 560
Safari | Core C++ A Software Engineering Approach -> Summary......Page 563
Safari | Core C++ A Software Engineering Approach -> III: Object-Oriented Programming with Aggregation and Inheritance......Page 565
Safari | Core C++ A Software Engineering Approach -> 12. Composite Classes: Pitfalls and Advantages......Page 566
Safari | Core C++ A Software Engineering Approach -> Using Class Objects as Data Members......Page 568
Safari | Core C++ A Software Engineering Approach -> Initialization of Composite Objects......Page 575
Safari | Core C++ A Software Engineering Approach -> Data Members with Special Properties......Page 587
Safari | Core C++ A Software Engineering Approach -> Container Classes......Page 596
Safari | Core C++ A Software Engineering Approach -> Summary......Page 614
Safari | Core C++ A Software Engineering Approach -> 13. Similar Classes: How to Treat Them......Page 615
Safari | Core C++ A Software Engineering Approach -> Treating Similar Classes......Page 618
Safari | Core C++ A Software Engineering Approach -> Syntax of C++ Inheritance......Page 630
Safari | Core C++ A Software Engineering Approach -> Accessing Base and Derived Class Services......Page 637
Safari | Core C++ A Software Engineering Approach -> Accessing Base Components of a Derived Class Object......Page 641
Safari | Core C++ A Software Engineering Approach -> Scope Rules and Name Resolution Under Inheritance......Page 655
Safari | Core C++ A Software Engineering Approach -> Constructors and Destructors for Derived Classes......Page 668
Safari | Core C++ A Software Engineering Approach -> Summary......Page 676
Safari | Core C++ A Software Engineering Approach -> 14. Choosing between Inheritance and Composition......Page 677
Safari | Core C++ A Software Engineering Approach -> Choosing a Technique for Code Reuse......Page 679
Safari | Core C++ A Software Engineering Approach -> Unified Modeling Language......Page 695
Safari | Core C++ A Software Engineering Approach -> Case Study: A Rental Store......Page 706
Safari | Core C++ A Software Engineering Approach -> On Class Visibility and Division of Responsibilities......Page 721
Safari | Core C++ A Software Engineering Approach -> Summary......Page 728
Safari | Core C++ A Software Engineering Approach -> IV: Advanced uses of C++......Page 729
Safari | Core C++ A Software Engineering Approach -> 15. Virtual Functions and other Advanced Uses of Inheritance......Page 731
Safari | Core C++ A Software Engineering Approach -> Conversions Between Nonrelated Classes......Page 734
Safari | Core C++ A Software Engineering Approach -> Conversions Between Classes Related Through Inheritance......Page 742
Safari | Core C++ A Software Engineering Approach -> Virtual Functions: Yet Another New Idea......Page 763
Safari | Core C++ A Software Engineering Approach -> Multiple Inheritance: Several Base Classes......Page 793
Safari | Core C++ A Software Engineering Approach -> Summary......Page 804
Safari | Core C++ A Software Engineering Approach -> 16. Advanced Uses of Operator Overloading......Page 806
Safari | Core C++ A Software Engineering Approach -> Operator Overloading: A Brief Overview......Page 807
Safari | Core C++ A Software Engineering Approach -> Unary Operators......Page 815
Safari | Core C++ A Software Engineering Approach -> Subscript and Function Call Operators......Page 832
Safari | Core C++ A Software Engineering Approach -> Input/Output Operators......Page 846
Safari | Core C++ A Software Engineering Approach -> Summary......Page 853
Safari | Core C++ A Software Engineering Approach -> 17. Templates: Yet Another Design Tool......Page 854
Safari | Core C++ A Software Engineering Approach -> A Simple Example of a Class Design Reuse......Page 856
Safari | Core C++ A Software Engineering Approach -> Syntax of Template Class Definition......Page 864
Safari | Core C++ A Software Engineering Approach -> Template Classes with Several Parameters......Page 876
Safari | Core C++ A Software Engineering Approach -> Relations Between Instantiations of Template Classes......Page 883
Safari | Core C++ A Software Engineering Approach -> Template Specializations......Page 892
Safari | Core C++ A Software Engineering Approach -> Template Functions......Page 898
Safari | Core C++ A Software Engineering Approach -> Summary......Page 901
Safari | Core C++ A Software Engineering Approach -> 18. Programming with Exceptions......Page 902
Safari | Core C++ A Software Engineering Approach -> A Simple Example of Exception Processing......Page 904
Safari | Core C++ A Software Engineering Approach -> Syntax of C++ Exceptions......Page 911
Safari | Core C++ A Software Engineering Approach -> Exceptions with Class Objects......Page 926
Safari | Core C++ A Software Engineering Approach -> Type Cast Operators......Page 936
Safari | Core C++ A Software Engineering Approach -> Summary......Page 948
Safari | Core C++ A Software Engineering Approach -> 19. What We Have Learned......Page 950
Safari | Core C++ A Software Engineering Approach -> C++ as a Traditional Programming Language......Page 952
Safari | Core C++ A Software Engineering Approach -> C++ as a Modular Language......Page 957
Safari | Core C++ A Software Engineering Approach -> C++ as an Object-Oriented Language......Page 964
Safari | Core C++ A Software Engineering Approach -> C++ and Competition......Page 971
Safari | Core C++ A Software Engineering Approach -> Summary......Page 975
๐ SIMILAR VOLUMES
This book is designed to teach new or experienced C++ programmers the principles of the C++ programming language--with an emphasis on the fundamentals of object-oriented programing, software engineering, and maintenance. The book progresses from simple language constructs and programming constructs
<Prentice Hall PTR Core Series> Teaches C++ by applying the best software engineering practices and methodologies to programming in C++. Shows the user how to build code that is more robust, easier to maintain and modify, and more valuable. Softcover. DLC: C++ (Computer programming language).
<Prentice Hall PTR Core Series> Teaches C++ by applying the best software engineering practices and methodologies to programming in C++. Shows the user how to build code that is more robust, easier to maintain and modify, and more valuable. Softcover. DLC: C++ (Computer programming language).
This book is written for professionals who are looking for a no-nonsense presentation of practical<br>details combined with a deep understanding of C++ subtleties.<br>This book is written for you if you are looking for practical details of new technologies with a<br>thorough discussion of their use.