معرفی کتاب «Professional C++ (Programmer to Programmer)» نوشتهٔ Nicholas A. Solter; Scott J. Kleper، منتشرشده توسط نشر Wiley Publishing در سال 2005. این کتاب در 2 صفحه، فرمت pdf، زبان انگلیسی ارائه شده است. «Professional C++ (Programmer to Programmer)» در دستهٔ بدون دستهبندی قرار دارد.
Professional C++ Programming provides a code-intensive, practical guide to best practices for designing and building C++ applications. Geared to experienced C++ developers, the book teachers programmers how to think in C++ - that is, how to design effective solutions that maximize the capabilities of the language. They then drill down into the language itself, explaining poorly understood elements of the C++ feature set, as well as pitfalls to avoid.The authors will teach each feature by example, presenting numerous challenging, real-world program segments that readers can plug into their own applications. There will also be several, in-depth case studies with extensive, working code that's been tested on Windows, Linux, and Solaris platforms. The authors will intersperse the text with non-trivial tips, tricks, and workarounds.Along with an emphasis on good programming style, the authors will also show best practices for testing and debugging applications. Professional C++......Page 3 Acknowledgments......Page 5 Author Bios......Page 6 Contents......Page 7 What This Book Covers......Page 23 How This Book Is Structured......Page 24 Conventions......Page 25 p2p. wrox. com......Page 26 The Basics of C++......Page 29 Diving Deeper into C++......Page 46 C++ as an Object-Oriented Language......Page 54 Your First Useful C++ Program......Page 57 Summary......Page 69 Chapter 2: Designing Professional C++ Programs......Page 71 The Importance of Programming Design......Page 72 What’s Different about C++ Design?......Page 74 Two Rules for C++ Design......Page 75 Designing a Chess Program......Page 78 Summary......Page 84 An Object-Oriented View of the World......Page 85 Summary......Page 104 Reusing Code......Page 105 Designing with Patterns and Techniques......Page 129 Summary......Page 131 Chapter 5: Designing for Reuse......Page 133 How to Design Reusable Code......Page 134 Summary......Page 146 The Need for Process......Page 147 Software Life-Cycle Models......Page 148 Software-Engineering Methodologies......Page 155 Building Your Own Process and Methodology......Page 160 Summary......Page 161 The Importance of Looking Good......Page 163 Documenting Your Code......Page 164 Decomposition......Page 173 Naming......Page 176 Using Language Features with Style......Page 179 Formatting......Page 180 Summary......Page 183 Introducing the Spreadsheet Example......Page 185 Writing Classes......Page 186 Object Life Cycles......Page 193 Summary......Page 210 Dynamic Memory Allocation in Objects......Page 211 Different Kinds of Data Members......Page 222 More about Methods......Page 227 Nested Classes......Page 234 Friends......Page 236 Operator Overloading......Page 237 Pointers to Methods and Members......Page 245 Building Abstract Classes......Page 246 Summary......Page 249 Chapter 10: Discovering Inheritance Techniques......Page 251 Building Classes with Inheritance......Page 252 Inheritance for Reuse......Page 258 Respect Your Parents......Page 262 Inheritance for Polymorphism......Page 268 Multiple Inheritance......Page 276 Interesting and Obscure Inheritance Issues......Page 281 Summary......Page 298 Chapter 11: Writing Generic Code with Templates......Page 299 Overview of Templates......Page 300 Class Templates......Page 301 Function Templates......Page 323 Advanced Templates......Page 327 Summary......Page 350 References......Page 351 Keyword Confusion......Page 358 Types and Casts......Page 365 Header Files......Page 371 C Utilities......Page 373 Summary......Page 376 Working with Dynamic Memory......Page 377 Array-Pointer Duality......Page 390 Dynamic Strings......Page 393 Low-Level Memory Operations......Page 397 Common Memory Pitfalls......Page 402 Summary......Page 406 Using Streams......Page 407 String Streams......Page 418 File Streams......Page 420 Bidirectional I/O......Page 424 Internationalization......Page 425 Summary......Page 428 Chapter 15: Handling Errors......Page 429 Errors and Exceptions......Page 430 Exception Mechanics......Page 432 Exceptions and Polymorphism......Page 444 Stack Unwinding and Cleanup......Page 450 Common Error-Handling Issues......Page 452 Putting It All Together......Page 456 Summary......Page 458 Chapter 16: Overloading C++ Operators......Page 459 Overview of Operator Overloading......Page 460 Overloading the Arithmetic Operators......Page 466 Overloading the Insertion and Extraction Operators......Page 469 Overloading the Subscripting Operator......Page 471 Overloading the Function Call Operator......Page 476 Overloading the Dereferencing Operators......Page 477 Writing Conversion Operators......Page 481 Overloading the Memory Allocation and Deallocation Operators......Page 485 Summary......Page 491 Overview of Performance and Efficiency......Page 493 Language-Level Efficiency......Page 495 Design-Level Efficiency......Page 500 Profiling......Page 507 Summary......Page 516 Cross-Platform Development......Page 517 Cross-Language Development......Page 522 Summary......Page 533 Quality Control......Page 535 Unit Testing......Page 538 Higher-Level Testing......Page 551 Summary......Page 554 The Fundamental Law of Debugging......Page 555 Planning for Bugs......Page 556 Debugging Techniques......Page 569 Summary......Page 587 Chapter 21: Delving into the STL: Containers and Iterators......Page 589 Containers Overview......Page 590 Sequential Containers......Page 593 Container Adapters......Page 616 Associative Containers......Page 623 Other Containers......Page 639 Summary......Page 646 Chapter 22: Mastering STL Algorithms and Function Objects......Page 647 Overview of Algorithms......Page 648 Function Objects......Page 652 Algorithm Details......Page 659 Algorithms and Function Objects Example: Auditing Voter Registrations......Page 676 Summary......Page 681 Chapter 23: Customizing and Extending the STL......Page 683 Iterator Adapters......Page 684 Extending the STL......Page 688 Summary......Page 719 The Appeal of Distributed Computing......Page 721 Distributed Objects......Page 724 CORBA......Page 730 XML......Page 737 Summary......Page 756 Chapter 25: Incorporating Techniques and Frameworks......Page 757 “I Can Never Remember How to . . .”......Page 758 There Must Be a Better Way......Page 764 Object-Oriented Frameworks......Page 778 Summary......Page 780 Chapter 26: Applying Design Patterns......Page 781 The Singleton Pattern......Page 782 The Factory Pattern......Page 788 The Proxy Pattern......Page 794 The Adapter Pattern......Page 796 The Decorator Pattern......Page 801 The Chain of Responsibility Pattern......Page 804 The Observer Pattern......Page 806 Summary......Page 809 Chapter 1: A Crash Course in C++......Page 811 Chapter 2: Designing Professional C++ Programs......Page 812 Chapter 3: Designing with Objects......Page 813 Chapter 4: Designing with Libraries and Patterns......Page 814 Chapter 6: Maximizing Software Engineering Methods......Page 815 Chapter 7: Coding with Style......Page 816 Chapters 8 and 9: Classes and Objects......Page 817 Chapter 10: Discovering Inheritance Techniques......Page 820 Chapter 12: Understanding C++ Quirks and Oddities......Page 821 Chapter 13: Effective Memory Management......Page 822 Chapter 14: Demystifying C++ I/O......Page 823 Chapter 16: Overloading C++ Operators......Page 824 Chapter 17: Writing Efficient C++......Page 825 Chapter 19: Becoming Adept at Testing......Page 826 Chapters 21, 22, and 23: The Standard Template Library......Page 827 Chapter 24: Exploring Distributed Objects......Page 828 Chapter 26: Applying Design Patterns......Page 829 Appendix B: Annotated Bibliography......Page 831 Index......Page 841
c++ Is One Of The Most Popular Programming Languages, But This Fast And Powerful Language Is Also Notoriously Complex. Many Useful Aspects Of C++ Remain A Mystery To Even The Most Experienced Programmers. Too Often, Programming Books Concentrate More On The Syntax Of The Language And Less On Its Real-world Applications. This Code-intensive, Practical Guide Changes That By Teaching All Facets Of C++ Development, Including Effective Application Design, Testing, And Debugging. You'll Learn Simple, Powerful Techniques Used By C++ Professionals, Little-known Features That Will Make Your Life Easier, And Reusable Coding Patterns That Will Bring Your Basic C++ Skills To The Professional Level.
after A Quick Review Of C++ Fundamentals, The Authors Launch Into Teaching You How To Use C++ In Your Daily Work. They Show You Various Programming Methodologies And Good Programming Style, As Well As Ways To Increase The Quality Of Your Code And Improve Your Programming Efficiency. You'll Discover How To Write Cross-language And Cross-platform Code, How To Perform Unit Testing And Regression Testing, And How To Use The Standard C++ Library. By The End Of The Book You'll Be Armed With A Wealth Of Reusable Coding Patterns That Can Be Applied To All Your Projects.
you Will Be Able To Master The C++ Language With All Its Idiosyncrasies, And Take Advantage Of Its Powerful Capabilities For Large-scale Software Development.
what You Will Learn From This Book
- different Programming Methodologies And High-quality Programming Styles
- ways To Take Advantage Of C++ For Large-scale Software Development
- methods To Ensure Bug-free Code
- an Appreciation For Object-oriented Design
- how To Use Libraries And Patterns To Write Better Codewith Less Work
- the Best Ways To Manage Memory In C++
- techniques For Input And Output
who This Book Is For
this Book Is For Programmers And Developers Who Want To Take Their C++ Skills To The Professional Level. Some Knowledge Of Basic C++ Or Significant Experience With C And/or Java Is Required, As Well As A Solid Foundation In Programming Fundamentals And Familiarity With A Compiler.
wrox Professional Guides Are Planned And Written By Working Programmers To Meet The Real-world Needs Of Programmers, Developers, And It Professionals. Focused And Relevant, They Address The Issues Technology Professionals Face Every Day. They Provide Examples, Practical Solutions, And Expert Education In New Technologies, All Designed To Help Programmers Do A Better Job.
"Geared to experienced C++ developers who may not be familiar with the more advanced features of the language, and therefore are not using it to its full capabilities. Teaches programmers how to think in C++ -- that is, how to design effective solutions that maximize the power of the language. The authors drill down into this notoriously complex language, explaining poorly understood elements of the C++ feature set as well as common pitfalls to avoid. Contains several in-depth case studies with working code that's been tested on Windows, Linux, and Solaris platforms."-- Publisher's description Chapter 3: Designing with Objects; An Object-Oriented View of the World; Summary; Chapter 4: Designing with Libraries and Patterns; Reusing Code; Designing with Patterns and Techniques; Summary; Chapter 5: Designing for Reuse; The Reuse Philosophy; How to Design Reusable Code; Summary; Chapter 6: Maximizing Software-Engineering Methods; The Need for Process; Software Life-Cycle Models; Software-Engineering Methodologies; Building Your Own Process and Methodology; Summary; Chapter 7: Coding with Style; The Importance of Looking Good; Documenting Your Code; Decomposition; Naming Shows how to use the programming language C++ in one's daily work, covering different programming methodologies and styles and such topics as large-scale software development, bug-free code, object-oriented design, libraries and patterns, memory management, and input and output techniques A guide to the C++ programming language describes different programming methodologies, methods to ensure bug-free code, using object-oriented design, ways to manage memory, and techniques for input and output. The goal of this chapter is to cover briefly the most important parts of C++ so that you have a base of knowledge before embarking on the rest of the book.