Core C++: a software engineering approach

Free Download

Authors:

Edition: 1st

ISBN: 9780130857293, 0130857297

Size: 6 MB (5848228 bytes)

Pages: 975/975

File format:

Language:

Publishing Year:

Category:

Victor Shtern9780130857293, 0130857297

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

Reviews

There are no reviews yet.

Be the first to review “Core C++: a software engineering approach”
Shopping Cart
Scroll to Top