راهحلهای C++: همراه با زبان برنامهنویسی C++ (ویرایش سوم)
C++ Solutions: Companion to the C++ Programming Language (3rd Edition)
معرفی کتاب «راهحلهای C++: همراه با زبان برنامهنویسی C++ (ویرایش سوم)» (با عنوان لاتین C++ Solutions: Companion to the C++ Programming Language (3rd Edition)) نوشتهٔ David Vandevoorde; Bjarne Stroustrup، منتشرشده توسط نشر Addison-Wesley Professional در سال 1997. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است.
More than 500,000 programmers have benefited from previous editions! This is a complete rewrite of the most widely read and most trusted book on C++. Based on the ANSI/ISO C++ final draft, this book covers the C++ language, its standard library, and key design techniques as an integrated whole. The C++ Programming Language provides comprehensive coverage of C++ language features and standard library components. For example, it includes complete coverage of abstract classes as interfaces, class hierarchies for object-oriented programming, templates as the basis for type-safe generic software, exceptions for regular error handling, namespaces for modularity in large-scale software, run-time type identification for loosely coupled systems, the C subset of C++ for C compatibility and system-level work, standard containers and algorithms, and standard strings, I/O streams, and numerics. With this third edition, Stroustrup makes C++ even more accessible to those new to the language while adding information and techniques that even expert C++ programmers will find invaluable. A web page to support the book can be found at http://www.awl.com/cp/stroustrup3e Cover-1997......Page 1 Title Page......Page 2 Contents......Page 4 Preface to the First Edition......Page 6 Preface to the Second Edition......Page 8 Preface......Page 10 Introductory Material......Page 12 1.1 The Structure of This Book......Page 14 1.2 Learning C++......Page 17 1.3 The Design of C++......Page 18 1.4 Historical Note......Page 21 1.5 Use of C++......Page 23 1.6 C and C++......Page 24 1.7 Thinking about Programming in C++......Page 26 1.8 Advice......Page 27 2.1 What is C++?......Page 32 2.2 Programming Paradigms......Page 33 2.3 Procedural Programming......Page 34 2.4 Modular Programming......Page 37 2.5 Data Abstraction......Page 41 2.6 Object Oriented Programming......Page 48 2.7 Generic Programming......Page 51 2.9 Advice......Page 54 3.1 Introduction......Page 56 3.3 The Standard Library Namespace......Page 57 3.4 Output......Page 58 3.5 Strings......Page 59 3.6 Input......Page 61 3.7 Containers......Page 63 3.8 Algorithms......Page 67 3.9 Math......Page 75 3.11 Advice......Page 77 Part I: Basic Facilities......Page 78 4.1 Types......Page 80 4.3 Character Types......Page 82 4.4 Integer Types......Page 84 4.6 Sizes......Page 85 4.8 Enumerations......Page 87 4.9 Declarations......Page 89 4.11 Exercises......Page 96 5.1 Pointers......Page 98 5.2 Arrays......Page 99 5.3 Pointers into Arrays......Page 102 5.4 Constants......Page 105 5.5 References......Page 108 5.6 Pointer to Void......Page 111 5.7 Structures......Page 112 5.8 Advice......Page 115 5.9 Exercises......Page 116 6.1 A Desk Calculator......Page 119 6.2 Operator Summary......Page 131 6.3 Statement Summary......Page 144 6.4 Comments and Indentation......Page 150 6.5 Advice......Page 151 6.6 Exercises......Page 152 7.1 Function Declarations......Page 155 7.2 Argument Passing......Page 157 7.3 Value Return......Page 160 7.4 Overloaded Function Names......Page 161 7.5 Default Arguments......Page 165 7.6 Unspecified Number of Arguments......Page 166 7.7 Pointer to Function......Page 168 7.8 Macros......Page 172 7.10 Exercises......Page 175 8.1 Modularization and Interfaces......Page 177 8.2 Namespaces......Page 179 8.3 Exceptions......Page 198 8.5 Exercises......Page 206 9.1 Separate Compilation......Page 209 9.2 Linkage......Page 210 9.3 Using Header Files......Page 220 9.4 Programs......Page 229 9.6 Exercises......Page 231 Part II: Abstraction Mechanisms......Page 233 10.1 Introduction......Page 235 10.2 Classes......Page 236 10.3 Efficient User Defined Types......Page 248 10.4 Objects......Page 254 10.5 Advice......Page 269 10.6 Exercises......Page 270 11.1 Introduction......Page 273 11.2 Operator Functions......Page 274 11.3 A Complex Number Type......Page 279 11.4 Conversion Operators......Page 287 11.5 Friends......Page 290 11.6 Large Objects......Page 294 11.7 Essential Operators......Page 295 11.8 Subscripting......Page 298 11.9 Function Call......Page 299 11.10 Dereferencing......Page 301 11.11 Increment and Decrement......Page 303 11.12 A String Class......Page 304 11.13 Advice......Page 309 11.14 Exercises......Page 310 12.1 Introduction......Page 313 12.2 Derived Classes......Page 314 12.3 Abstract Classes......Page 325 12.4 Design of Class Hierarchies......Page 326 12.6 Advice......Page 336 12.7 Exercises......Page 337 13.1 Introduction......Page 339 13.2 A Simple String Template......Page 340 13.3 Function Templates......Page 346 13.4 Using Template Arguments to Specify Policy......Page 350 13.5 Specialization......Page 353 13.6 Derivation and Templates......Page 357 13.7 Source Code Organization......Page 362 13.8 Advice......Page 364 13.9 Exercises......Page 365 14.1 Error Handling......Page 367 14.2 Grouping of Exceptions......Page 370 14.3 Catching Exceptions......Page 373 14.4 Resource Management......Page 376 14.5 Exceptions That Are Not Errors......Page 386 14.6 Exception Specifications......Page 387 14.7 Uncaught Exceptions......Page 392 14.8 Exceptions and Efficiency......Page 393 14.9 Error Handling Alternatives......Page 395 14.10 Standard Exceptions......Page 396 14.11 Advice......Page 398 14.12 Exercises......Page 399 15.1 Introduction and Overview......Page 401 15.2 Multiple Inheritance......Page 402 15.3 Access Control......Page 414 15.4 Run Time Type Information......Page 419 15.5 Pointers to Members......Page 430 15.6 Free Store......Page 433 15.8 Exercises......Page 437 Part III: The Standard Library......Page 439 16.1 Standard Library Design......Page 441 16.2 Container Design......Page 446 16.3 Vector......Page 454 16.5 Exercises......Page 471 17.1 Standard Containers......Page 473 17.2 Sequences......Page 481 17.3 Sequence Adapters......Page 487 17.4 Associative Containers......Page 492 17.5 Almost Containers......Page 503 17.6 Defining a New Container......Page 509 17.8 Exercises......Page 516 18.1 Introduction......Page 519 18.2 Overview of Standard Library Algorithms......Page 520 18.3 Sequences and Containers......Page 524 18.4 Function Objects......Page 526 18.5 Nonmodifying Sequence Algorithms......Page 535 18.6 Modifying Sequence Algorithms......Page 541 18.7 Sorted Sequences......Page 551 18.8 Heaps......Page 555 18.9 Min and Max......Page 556 18.10 Permutations......Page 557 18.12 Advice......Page 558 18.13 Exercises......Page 559 19.1 Introduction......Page 561 19.2 Iterators and Sequences......Page 562 19.3 Checked Iterators......Page 573 19.4 Allocators......Page 579 19.5 Advice......Page 589 19.6 Exercises......Page 590 20.1 Introduction......Page 591 20.2 Characters......Page 592 20.3 Basic_string......Page 594 20.4 The C Standard Library......Page 611 20.5 Advice......Page 613 20.6 Exercises......Page 614 21.1 Introduction......Page 617 21.2 Output......Page 619 21.3 Input......Page 625 21.4 Formatting......Page 637 21.5 File Streams and String Streams......Page 649 21.6 Buffering......Page 654 21.7 Locale......Page 661 21.8 C Input/Output......Page 663 21.9 Advice......Page 666 21.10 Exercises......Page 667 22.1 Introduction......Page 669 22.2 Numeric Limits......Page 670 22.3 Standard Mathematical Functions......Page 672 22.4 Vector Arithmetic......Page 674 22.5 Complex Arithmetic......Page 691 22.6 Generalized Numeric Algorithms......Page 694 22.7 Random Numbers......Page 697 22.8 Advice......Page 698 22.9 Exercises......Page 699 Part IV: Design Using C++......Page 701 23.1 Overview......Page 703 23.2 Introduction......Page 704 23.3 Aims and Means......Page 706 23.4 The Development Process......Page 708 23.5 Management......Page 725 23.6 Annotated Bibliography......Page 731 23.7 Advice......Page 733 24.1 Overview......Page 735 24.2 Design and Programming Language......Page 736 24.3 Classes......Page 744 24.4 Components......Page 767 24.5 Advice......Page 775 25.1 Kinds of Classes......Page 777 25.2 Concrete Types......Page 778 25.3 Abstract Types......Page 781 25.4 Node Classes......Page 784 25.5 Actions......Page 788 25.6 Interface Classes......Page 790 25.7 Handle Classes......Page 794 25.8 Application Frameworks......Page 798 25.10 Exercises......Page 800 Appendices and Index......Page 803 A.2 Keywords......Page 805 A.3 Lexical Conventions......Page 806 A.5 Expressions......Page 810 A.6 Statements......Page 814 A.7 Declarations......Page 815 A.8 Classes......Page 820 A.9 Templates......Page 823 A.10 Exception Handling......Page 824 A.11 Preprocessing Directives......Page 825 B.1 Introduction......Page 827 B.2 C/C++ Compatibility......Page 828 B.3 Coping with Older C++ Implementations......Page 832 C.2 The Standard......Page 839 C.3 Character Sets......Page 841 C.4 Types of Integer Literals......Page 844 C.6 Implicit Type Conversion......Page 845 C.7 Multidimensional Arrays......Page 848 C.8 Saving Space......Page 852 C.9 Memory Management......Page 855 C.10 Namespaces......Page 859 C.11 Access Control......Page 861 C.12 Pointers to Data Members......Page 865 C.13 Templates......Page 866 C.14 Advice......Page 879 I Index......Page 881 A Brief Look at C++......Page 925 A Perspective on ISO C++......Page 929 What is "Object-Oriented Programming"?......Page 937 Stroustrup: The C++ Programming Language (Third Edition)......Page 958 You can photograph creatively - from scratch. Don't waste valuable time and money in trial-and-error. Find out now how to create unforgettable pictures with this best-selling, ultimate introduction to photography. Langford's Starting Photography, now in its 5th edition and fully updated with cutting-edge digital methods, is packed with new sections, including portrait photography, shooting sports and action, capturing fireworks, and creating stunning still life images. Inspirational color images throughout show what you can achieve, with practical suggestions for experimental projects to improve your technique. Inside you will When to use film or digital; and how different cameras operate * Discover the best tactics for outstanding photos using your camera's controls, such as shutter speed, focus, zoom, and flash * Learn key methods for different subjects, including people, places, animals, landscapes, close-ups * Develop the best scanner and printing techniques immediately * Polish your style with the brand-new Lighting section on flash, studio and available light * And much more! "Starting Photography is a hands-on book for photographers just starting their love affair with photography." Michael Langford, photographer, Course Director, RCA, and writer, 1933 - 2000 Praise for the previous "Diagrams and photographs demystify information, helping the book strike a balance between technical details and shooting advice, and helpfully it doesn't talk down to the reader...The scope of information and the reasonable price ensures this is recommended." - What Digital Camera "There is a lot of technical information that will give you a good grounding in photography, covering both traditional darkroom techniques and digital methods. Projects allow further exploration of themes and are a good way of extending your mastery of the camera." - Amateur Photographer "At last there is an introductory book that I can unreservedly recommend to friends, students and others who are in any way interested in the basics of photography and digital photography." - Sidney Ray, Senior Lecturer in Digital and Photographic Imaging, University of Westminster, photographer and Imaging Consultant. This Is A Complete Rewrite Of The Most Widely Read And Most Trusted Book On C++. Based On The Ansi/iso C++ Final Draft, This Book Covers The C++ Language, Its Standard Library, And Key Design Techniques As An Integrated Whole. The C++ Programming Language Provides Comprehensive Coverage Of C++ Language Features And Standard Library Components. With This Third Edition, Stroustrup Makes C++ Even More Accessible To Those New To The Language While Adding Information And Techniques That Even Expert C++ Programmers Will Find Invaluable.--jacket. 1. Notes To The Reader -- 2. A Tour Of C++ -- 3. A Tour Of The Standard Library -- 4. Types And Declarations -- 5. Pointers, Arrays And Structures -- 6. Expressions And Statements -- 7. Functions -- 8. Namespaces And Exceptions -- 9. Sourcefiles And Programs -- 10. Classes -- 11. Operator Overloading -- 12. Derived Classes -- 13. Templates -- 14. Exceptional Handling -- 15. Class Hierarchies -- 16. Library Organization And Containers -- 17. Standard Containers -- 18. Algorithms And Function Objects -- 19. Iterators And Allocators -- 20. Strings -- 21. Streams -- 22. Numerics -- 23. Development And Design -- 24. Design And Programming -- 25. Roles Of Classes -- A. The C++ Grammar -- B. Compatibility -- C. Technicalities -- Index. Bjarne Stroustrup. Includes Index. Computational logic is a fast-growing field with applications in artificial intelligence, constraint solving, and the design and verification of software and hardware systems. Written with graduate and advanced undergraduate students in mind, this textbook introduces computational logic from the foundations of first-order logic to state-of-the-art decision procedures for arithmetic, data structures, and combination theories. This textbook also presents a logical approach to engineering correct software. The increasing ubiquity of computers makes implementing correct systems more important than ever. Verification exercises develop the reader's facility in specifying and verifying software using logic. The treatment of verification concludes with an introduction to the static analysis of software, an important component of modern verification systems. For readers interested in learning more about computational logic, decision procedures, verification, and other areas of formal methods, the final chapter outlines courses of further study. * Written by the inventor of the language, the book is the defining, classic text on the language that has become central to software development over the past five years. This third edition incorporates additions and changes on a major scale. In particular, the new edition is based on the ANSI/ISO C++ final draft with its many new language features - templates, exceptions, namespaces, and run-time type identification, to name a few - in addition to the C++ Standard Template Library that has revolutionized C++ development. * Throughout, the book does far more than merely describe every element of the language. The focus is on showing how the language is used as a tool for design and programming, and teaching the basic concepts programmers need to master C++. With this third edition, Stroustrup has made the book even more accessible to those new to the language while adding information and techniques that even expert C++ programmers will find invaluable. C++ Solutions, provides insightful, logical, and easy-to-follow solutions to selected exercises found in The C++ Programming Language, Third Edition, by Bjarne Stroustrup. The exercises are explained in detail and are extensively annotated with cross-references to Stroustrup's book. Developers acquire a thorough understanding of ANSI/ISO C++ by working through examples. Vandevoorde solves a broad subset of illustrative and realistic exercises to facilitate this process. He also includes hints to help programmers find their own solutions, and additional exercises to provide deeper insights into modern software design. Highlights * In-depth coverage of C++ language concepts, syntax, and features for each chapter * Numerous detailed examples that build intuition about performance issues * Adherence to the final ANSI/ISO C++ specifications * Sample code and programs available on-line Written with graduate and advanced undergraduate students in mind, this textbook introduces computational logic from the foundations of first-order logic to state-of-the-art decision procedures for arithmetic, data structures, and combination theories. The textbook also presents a logical approach to engineering correct software. Verification exercises are given to develop the reader's facility in specifying and verifying software using logic. The treatment of verification concludes with an introduction to the static analysis of software, an important component of modern verification systems. The final chapter outlines courses of further study. "This is a complete rewrite of the most widely read and most trusted book on C++. Based on the ANSI/ISO C++ final draft, this book covers the C++ language, its standard library, and key design techniques as an integrated whole." "The C++ Programming Language provides comprehensive coverage of C++ language features and standard library components.". "With this third edition, Stroustrup makes C++ even more accessible to those new to the language while adding information and techniques that even expert C++ programmers will find invaluable."--BOOK JACKET. Designed as a companion to The C++ Programming Language, Third Edition by Bjarne Stroustrup, C++ Solutions provides insights and solutions to the exercises found in Stroustrup's book, and includes sample code to show alternative ways to approach the problems. In-depth information on each chapter's topics provides a thorough understanding of the C++ language's mechanics, syntax, and features. As a member of the C++ Standards Committee, David Vandevoorde brings the most current information from the Standards Committee to his book. The most widely read and trusted guide to the C++ language, standard library, and design techniques includes significant new updates and two new appendices on internationalization and Standard Library technicalities. It is the only book with authoritative, accessible coverage of every major element of ISO/ANSI Standard C++. A new chapter on digital workflow has been included and even more information added regarding digital photography while still retaining coverage for film camera users to widen the audience appeal. All the core basics are featured, as well as invaluable scanner and printing techniques The C++ Programming tome, written by the father of C++ himself, Bjarne Stroustrup. The premier book on the subject of C++ Programming.
دانلود کتاب راهحلهای C++: همراه با زبان برنامهنویسی C++ (ویرایش سوم)