Professional C++ - Gregoire Marc | Libro Wrox 10/2014 - HOEPLI.it


home libri books ebook dvd e film top ten sconti 0 Carrello


Torna Indietro

gregoire marc - professional c++

Professional C++




Disponibilità: Non disponibile o esaurito presso l'editore

PREZZO
€ 40,00



Questo prodotto usufruisce delle SPEDIZIONI GRATIS
selezionando l'opzione Corriere Veloce in fase di ordine.


Pagabile anche con App18 Bonus Cultura e Carta Docenti


Facebook Twitter Aggiungi commento


Spese Gratis

Dettagli

Genere:Libro
Lingua: Inglese
Editore:

Wrox

Pubblicazione: 10/2014
Edizione: 3rd Edition





Note Editore

Master the latest release of the C++ language, C++14

This book is a practical, code–intensive guide to designing and building C++ applications, fully updated for the C++14 release. The lessons emphasize good programming style, and how to think in C++ to design effective solutions that maximize the language s capabilities. Drill down into the language to understand the more complex elements of the feature set, and learn the tricks and techniques that steer you away from common pitfalls. The new C++14 information is highlighted for quick reference, helping you get up to speed on the major changes that impact application building.

Professional C++ Third Edition:

  • Learn by example, working with challenging, real–world program segments available to download
  • Study detailed case examples with extensive working code tested on Windows and Linux
  • Discover the tips, tricks, and workarounds that lead to good programming style, including best practices for debugging
  • Work with C++14 s new language features, including function return type deduction, binary literals, generic lambdas, and lambda capture expressions
  • Get up to date with the latest standard library features, like make—unique, transparent function objects, tuple addressing via type, and shared mutex and lock classes

Programmer Forums

Join our Programmer to Programmer forums to ask and answer programming questions about this book, join discussions on the hottest topics in the industry, and connect with fellow programmers from around the world.

Code Downloads

Take advantage of free code samples from this book, as well as code samples from hundreds of other books, all ready to use.

Read More

Find articles, e–books, sample chapters, and tables of contents for hundreds of books, and more reference resources on programming topics that matter to you.





Sommario

INTRODUCTION xli

Part I: INTRODUCTION TO PROFESSIONAL C++

CHAPTER 1: A CRA SH COURSE IN C++ AND THE STL 3

The Basics of C++ 4

Diving Deeper into C++ 25

C++ as an Object–Oriented Language 34

Summary 46

CHAPTER 2: WORKING WITH STRINGS 47

Dynamic Strings 47

Summary 55

CHAPTER 3: CODING WITH STYLE 57

Naming 68

Formatting 72

Summary 75

Part II: PROFESSIONAL C++ SOFTWAR E DESIGN

CHAPTER 4: DESIGNING PROFESSIONAL C++ PROGRA MS 79

What Is Programming Design? 80

The Importance of Programming Design 80

Designing for C++ 82

Two Rules for C++ Design 83

Reusing Code 87

Deciding Whether or Not to Use the STL 98

Designing with Patterns and Techniques 98

Designing a Chess Program 99

Summary 105

CHAPTER 5: DESIGNING WITH OBJECTS 107

Am I Thinking Procedurally? 108

The Object–Oriented Philosophy 108

Living in a World of Objects 111

Abstraction 122

Summary 126

CHAPTER 6: DESIGNING FOR REUSE 127

The Reuse Philosophy 127

How to Design Reusable Code 128

Summary 140

Part III: CODING THE PROFESSIONAL WAY

CHAPTER 7: GAINING PROFICIENCY WITH CLASSES AND OBJECTS 143

Introducing the Spreadsheet Example 144

Writing Classes 144

Summary 175

CHAPTER 8: MASTERING CLASSES AND OBJECTS 177

Dynamic Memory Allocation in Objects 178

Different Kinds of Data Members 188

More about Methods 193

Nested Classes 199

Enumerated Types Inside Classes 201

Friends 202

Operator Overloading 203

Summary 215

CHAPTER 9: DISCOVERING INHERITANCE TECHNIQUES 217

Building Classes with Inheritance 218

Multiple Inheritance 244

Interesting and Obscure Inheritance Issues 249

Summary 271

CHAPTER 10: C++ QUIRKS, ODDITIES, AND INCIDENTALS 273

References 274

Types and Casts 295

Summary of Casts 301

Scope Resolution 302

C++11 / C++14 303

Header Files 309

C Utilities 310

Summary 313

CHAPTER 11: WRITING GENERIC CODE WITH TEMPLATES 315

Overview of Templates 316

Class Templates 317

Function Templates 339

Variable Templates 343

Summary 343

CHAPTER 12: DEMYSTIFYING C++ I/O 345

Using Streams 346

String Streams 360

File Streams 362

Bidirectional I/O 366

Summary 367

CHAPTER 13: HANDLING ERR ORS 369

Errors and Exceptions 370

Exception Mechanics 372

Exceptions and Polymorphism 387

Stack Unwinding and Cleanup 394

Common Error–Handling Issues 397

Putting It All Together 405

Summary 409

CHAPTER 14: OVERLOADING C++ OPERA TORS 411

Overview of Operator Overloading 412

Overloading the Arithmetic Operators 420

Overloading the Bitwise and Binary Logical Operators 421

Overloading the Insertion and Extraction Operators 422

Overloading the Subscripting Operator 423

Overloading the Function Call Operator 428

Overloading the Dereferencing Operators 429

Writing Conversion Operators 432

Overloading the Memory Allocation and Deallocation Operators 436

Summary 442

CHAPTER 15: OVERVIEW OF THE C++ STANDARD LIBRARY 443

Coding Principles 444

Overview of the C++ Standard Library 445

Summary 465

CHAPTER 16: UNDERSTANDING CONTAINERS AND ITERATORS 467

Containers Overview 468

Sequential Containers 473

Container Adapters 498

Associative Containers 504

Unordered Associative Containers/Hash Tables 516

Other Containers 523

Summary 529

CHAPTER 17: MASTERING STL ALGORITHMS 531

Overview of Algorithms 532

Lambda Expressions 536

Function Objects 542

Algorithm Details 550

Algorithms Example: Auditing Voter Registrations 570

Summary 573

CHAPTER 18: STRING LOCALIZATION AND REGULAR EXPRESSIONS 575

Localization 575

Regular Expressions 581

ECMAScript Syntax 582

Summary 599

CHAPTER 19: ADDITIONAL LIBRARY UTILITIES 601

std::function 601

Ratios 603

The Chrono Library 606

Random Number Generation 612

Tuples 621

Summary 624

Part IV: MASTERING ADVANCED FEATURES OF C++

CHAPTER 20: CUSTOMIZING AND EXTENDING THE STL 627

Allocators 628

Iterator Adapters 628

Extending the STL 634

Summary 671

CHAPTER 21: ADVANCED TEMPLATES 673

More about Template Parameters 673

Class Template Partial Specialization 679

Emulating Function Partial Specialization with Overloading 683

Template Recursion 685

Type Inference 689

Variadic Templates 691

Metaprogramming 695

Summary 705

CHAPTER 22: MEMORY MANAGEMENT 707

Working with Dynamic Memory 708

Array–Pointer Duality 720

Low–Level Memory Operations 722

Smart Pointers 727

Common Memory Pitfalls 734

Summary 740

CHAPTER 23: MULTITHREADED PROGRAMMING WITH C++ 741

Introduction 742

Threads 746

Atomic Operations Library 755

Mutual Exclusion 758

Condition Variables 767

Futures 770

Example: Multithreaded Logger Class 772

Thread Pools 776

Threading Design and Best Practices 777

Summary 778

Part V: C++ SOFTWAR E ENGINEERING

CHAPTER 24: MAXIMIZING SOFTWARE ENGINEERING METHODS 781

The Need for Process 782

Software Life Cycle Models 783

Software Engineering Methodologies 789

Building Your Own Process and Methodology 796

Source Code Control 797

Summary 799

CHAPTER 25: WRITING EFFICIENT C++ 801

Overview of Performance and Efficiency 802

Language–Level Efficiency 803

Design–Level Efficiency 808

Profiling 813

Summary 825

CHAPTER 26: CONQUERING DEBUGGING 827

The Fundamental Law of Debugging 828

Bug Taxonomies 828

Avoiding Bugs 828

Planning for Bugs 829

Debugging Techniques 842

Summary 861

APPENDIX A: C++ INTERVIEWS 863

Chapter 1: A Crash Course in C++ and the STL 863

Chapters 2 and 18: Strings, Localization, and Regular Expressions 864

Chapter 3: Coding with Style 865

Chapter 4: Designing Professional C++ Programs 866

Chapter 5: Designing with Objects 868

Chapter 6: Designing for Reuse 868

Chapters 7 and 8: Classes and Objects 869

Chapter 9: Discovering Inheritance Techniques 872

Chapter 10: C++ Quirks, Oddities, and Incidentals 873

Chapters 11 and 21: Templates 875

Chapter 12: Demystifying C++ I/O 875

Chapter 13: Handling Errors 876

Chapter 14: Overloading C++ Operators 877

Chapters 15, 16, 17, and 20: The Standard Template Library 878

Chapter 19: Additional Library Utilities 878

Chapter 22: Memory Management 879

Chapter 23: Multithreaded Programming with C++ 880

Chapter 24: Maximizing Software Engineering Methods 881

Chapter 25: Writing Efficient C++ 882

Chapter 26: Conquering Debugging 882

APPENDIX B: ANNOTATED BIBLIOGRAPHY 885

C++ 885

C 889

Unified Modeling Language, Uml 889

Algorithms and Data Structures 890

Random Numbers 890

Open–Source Software 890

Software Engineering Methodology 891

Programming Style 892

Computer Architecture 892

Efficiency 893

Testing 893

Debugging 893

Design Patterns 893

Operating Systems 894

Multithreaded Programming 894

APPENDIX C: STANDARD LIBRARY HEADER FILES 895

The C Standard Library 895

Containers 897

Algorithms, Iterators, and Allocators 898

General Utilities 898

Mathematical Utilities 899

Exceptions 899

I/O Streams 900

Threading Library 901

INDEX 903





Autore

Marc Gregoire is a software engineer and developer of C/C++ applications for both Windows and Linux. He is a Microsoft Visual C++ MVP, the founder of the Belgian C++ users group, and is currently working on 3D laser scanning software for Nikon Metrology. He previously worked on critical 2G and 3G telecom software for Siemens and Nokia Siemens Networks. Marc maintains a blog at nuonsoft.com/blog.

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.








Altre Informazioni

ISBN:

9781118858059

Condizione: Nuovo
Collana: WROX PROGRAMMER TO PROGRAMMER
Dimensioni: 233 x 44.47 x 188 mm Ø 1620 gr
Formato: Brossura
Pagine Arabe: 984






Utilizziamo i cookie di profilazione, anche di terze parti, per migliorare la navigazione, per fornire servizi e proporti pubblicità in linea con le tue preferenze. Se vuoi saperne di più o negare il consenso a tutti o ad alcuni cookie clicca qui. Chiudendo questo banner o proseguendo nella navigazione acconsenti all’uso dei cookie.

X