C++ Primer

C++ Primer

(美) 李普曼 (Lippman,S.B.) , (美) 拉乔伊 (Lajoie,J.) , (美) 默 (Moo,B.E.) , 著

出版社:电子工业出版社

年代:2013

定价:99.0

书籍简介:

本书是久负盛名的C++经典教程,其内容是C++大师Stanley B. Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准深入理解的完美结合,已经帮助全球无数程序员学会了C++。本版对前一版进行了彻底的修订,内容经过了重新组织,更加入了C++先驱Barbara E. Moo在C++教学方面的真知灼见。既显著改善了可读性,又充分体现了C++语言的最新进展和当前的业界最佳实践。书中不但新增大量教学辅助内容,还包含大量来自实战的示例和习题。本版为最新版本。

作者介绍:

Stanley B. Lippman,目前是微软公司 Visual C++ 团队的架构师。他从1984年开始在贝尔实验室与C++的设计者Bjarne Stroustrup一起从事C++的设计与开发。他在迪士尼和梦工厂从事动画制作,还担任过JPL的高级顾问。   Josée Lajoie,曾经是IBM加拿大研究中心C/C++编译器开发团队的成员,在ISO C++标准委员会工作了7年,担任过ISO核心语言工作组的主席和C++ Report杂志的专栏作家。   Barbara E. Moo,拥有25年软件经验的独立咨询顾问。在AT&T,她与Stroustrup、Lippman一起管理过复杂的C++开发项目。

书籍目录:

Preface xxiii

Chapter 1 Getting Started

1.1 Writing a Simple C++Program

1.1.1 Compiling and Executing Our Program

1.2 AFirstLookat Input/Output

1.3 AWordaboutComments

1.4 FlowofControl

1.4.1 The whileStatement

1.4.2 The forStatement

1.4.3 ReadinganUnknownNumberof Inputs

1.4.4 The ifStatement

1.5 IntroducingClasses

1.5.1 The Sales_itemClass

1.5.2 AFirstLookatMemberFunctions

1.6 TheBookstoreProgram

ChapterSummary

DefinedTerms

Part I The Basics

Chapter 2 Variables and Basic Types

2.1 PrimitiveBuilt-inTypes

2.1.1 ArithmeticTypes

2.1.2 TypeConversions

2.1.3 Literals

2.2 Variables

2.2.1 VariableDefinitions

2.2.2 VariableDeclarations andDefinitions

2.2.3 Identifiers

2.2.4 Scopeof aName

2.3 CompoundTypes

2.3.1 References

2.3.2 Pointers

vii

viii Contents

2.3.3 UnderstandingCompoundTypeDeclarations

2.4 constQualifier

2.4.1 References to const

2.4.2 Pointers and const

2.4.3 Top-Level const

2.4.4 constexprandConstantExpressions

2.5 DealingwithTypes

2.5.1 TypeAliases

2.5.2 The autoTypeSpecifier

2.5.3 The decltypeTypeSpecifier

2.6 DefiningOurOwnDataStructures

2.6.1 Defining the Sales_dataType

2.6.2 Using the Sales_dataClass

2.6.3 Writing Our Own Header Files

ChapterSummary

DefinedTerms

Chapter 3 Strings, Vectors, and Arrays

3.1 Namespace usingDeclarations

3.2 Library stringType

3.2.1 Defining and Initializing strings

3.2.2 Operations on strings

3.2.3 Dealing with the Characters in a string

3.3 Library vectorType

3.3.1 Defining and Initializing vectors

3.3.2 Adding Elements to a vector

3.3.3 Other vectorOperations

3.4 IntroducingIterators

3.4.1 UsingIterators

3.4.2 IteratorArithmetic

3.5 Arrays

3.5.1 DefiningandInitializingBuilt-inArrays

3.5.2 AccessingtheElementsof anArray

3.5.3 Pointers andArrays

3.5.4 C-StyleCharacterStrings

3.5.5 InterfacingtoOlderCode

3.6 MultidimensionalArrays

ChapterSummary

DefinedTerms

Chapter 4 Expressions

4.1 Fundamentals

4.1.1 BasicConcepts

4.1.2 PrecedenceandAssociativity

4.1.3 OrderofEvaluation

4.2 ArithmeticOperators

4.3 Logical andRelationalOperators

Contents ix

4.4 AssignmentOperators

4.5 Increment andDecrementOperators

4.6 TheMemberAccessOperators

4.7 TheConditionalOperator

4.8 TheBitwiseOperators

4.9 The sizeofOperator

4.10 CommaOperator

4.11 TypeConversions

4.11.1 TheArithmeticConversions

4.11.2 Other ImplicitConversions

4.11.3 ExplicitConversions

4.12 OperatorPrecedenceTable

ChapterSummary

DefinedTerms

Chapter 5 Statements

5.1 Simple Statements

5.2 StatementScope

5.3 Conditional Statements

5.3.1 The ifStatement

5.3.2 The switchStatement

5.4 IterativeStatements

5.4.1 The whileStatement

5.4.2 Traditional forStatement

5.4.3 Range forStatement

5.4.4 The do whileStatement

5.5 JumpStatements

5.5.1 The breakStatement

5.5.2 The continueStatement

5.5.3 The gotoStatement

5.6 tryBlocks andExceptionHandling

5.6.1 A throwExpression

5.6.2 The tryBlock

5.6.3 StandardExceptions

ChapterSummary

DefinedTerms

Chapter 6 Functions

6.1 FunctionBasics

6.1.1 LocalObjects

6.1.2 FunctionDeclarations

6.1.3 SeparateCompilation

6.2 ArgumentPassing

6.2.1 PassingArgumentsbyValue

6.2.2 PassingArgumentsbyReference

6.2.3 constParametersandArguments

6.2.4 ArrayParameters

x Contents

6.2.5 main:HandlingCommand-LineOptions

6.2.6 FunctionswithVaryingParameters

6.3 Return Types and the returnStatement

6.3.1 FunctionswithNoReturnValue

6.3.2 FunctionsThatReturnaValue

6.3.3 ReturningaPointer toanArray

6.4 OverloadedFunctions

6.4.1 OverloadingandScope

6.5 Features forSpecializedUses

6.5.1 DefaultArguments

6.5.2 Inline and constexprFunctions

6.5.3 Aids for Debugging

6.6 FunctionMatching

6.6.1 ArgumentTypeConversions

6.7 Pointers toFunctions

ChapterSummary

DefinedTerms

Chapter 7 Classes

7.1 DefiningAbstractDataTypes

7.1.1 Designing the Sales_dataClass

7.1.2 Defining the Revised Sales_dataClass

7.1.3 DefiningNonmemberClass-RelatedFunctions

7.1.4 Constructors

7.1.5 Copy,Assignment, andDestruction

7.2 AccessControl andEncapsulation

7.2.1 Friends

7.3 AdditionalClassFeatures

7.3.1 ClassMembersRevisited

7.3.2 Functions That Return *this

7.3.3 ClassTypes

7.3.4 FriendshipRevisited

7.4 ClassScope

7.4.1 NameLookupandClassScope

7.5 ConstructorsRevisited

7.5.1 Constructor InitializerList

7.5.2 DelegatingConstructors

7.5.3 TheRoleof theDefaultConstructor

7.5.4 ImplicitClass-TypeConversions

7.5.5 AggregateClasses

7.5.6 LiteralClasses

7.6 staticClassMembers

ChapterSummary

DefinedTerms

Contents xi

Part II The C++ Library

Chapter 8 The IO Library

8.1 The IOClasses

8.1.1 NoCopyorAssignfor IOObjects

8.1.2 ConditionStates

8.1.3 ManagingtheOutputBuffer

8.2 File Input and Output

8.2.1 Using File Stream Objects

8.2.2 File Modes

8.3 stringStreams

8.3.1 Using an istringstream

8.3.2 Using ostringstreams

ChapterSummary

DefinedTerms

Chapter 9 Sequential Containers

9.1 Overviewof the SequentialContainers

9.2 ContainerLibraryOverview

9.2.1 Iterators

9.2.2 ContainerTypeMembers

9.2.3 begin and endMembers

9.2.4 DefiningandInitializingaContainer

9.2.5 Assignment and swap

9.2.6 ContainerSizeOperations

9.2.7 RelationalOperators

9.3 SequentialContainerOperations

9.3.1 AddingElements toaSequentialContainer

9.3.2 AccessingElements

9.3.3 ErasingElements

9.3.4 Specialized forward_listOperations

9.3.5 ResizingaContainer

9.3.6 ContainerOperationsMayInvalidateIterators

9.4 How a vectorGrows

9.5 Additional stringOperations

9.5.1 Other Ways to Construct strings

9.5.2 Other Ways to Change a string

9.5.3 stringSearchOperations

9.5.4 The compareFunctions

9.5.5 NumericConversions

9.6 ContainerAdaptors

ChapterSummary

DefinedTerms

xii Contents

Chapter 10 Generic Algorithms

10.1 Overview

10.2 AFirstLookat theAlgorithms

10.2.1 Read-OnlyAlgorithms

10.2.2 AlgorithmsThatWriteContainerElements

10.2.3 AlgorithmsThatReorderContainerElements

10.3 CustomizingOperations

10.3.1 PassingaFunctiontoanAlgorithm

10.3.2 LambdaExpressions

10.3.3 LambdaCapturesandReturns

10.3.4 BindingArguments

10.4 Revisiting Iterators

10.4.1 Insert Iterators

10.4.2 iostream Iterators

10.4.3 Reverse Iterators

10.5 StructureofGenericAlgorithms

10.5.1 TheFive IteratorCategories

10.5.2 AlgorithmParameterPatterns

10.5.3 AlgorithmNamingConventions

10.6 Container-SpecificAlgorithms

ChapterSummary

DefinedTerms

Chapter 11 Associative Containers

11.1 UsinganAssociativeContainer

11.2 Overviewof theAssociativeContainers

11.2.1 DefininganAssociativeContainer

11.2.2 Requirements onKeyType

11.2.3 The pairType

11.3 Operations onAssociativeContainers

11.3.1 AssociativeContainer Iterators

11.3.2 AddingElements

11.3.3 ErasingElements

11.3.4 Subscripting a map

11.3.5 AccessingElements

11.3.6 AWordTransformationMap

11.4 TheUnorderedContainers

ChapterSummary

DefinedTerms

Chapter 12 DynamicMemory

12.1 DynamicMemoryandSmartPointers

12.1.1 The shared_ptrClass

12.1.2 ManagingMemoryDirectly

12.1.3 Using shared_ptrs with new

12.1.4 SmartPointers andExceptions

12.1.5 unique_ptr

Contents xiii

12.1.6 weak_ptr

12.2 DynamicArrays

12.2.1 newandArrays

12.2.2 The allocatorClass

12.3 UsingtheLibrary:AText-QueryProgram

12.3.1 Designof theQueryProgram

12.3.2 DefiningtheQueryProgramClasses

ChapterSummary

DefinedTerms

Part III Tools for Class Authors

Chapter 13 Copy Control

13.1 Copy,Assign, andDestroy

13.1.1 TheCopyConstructor

13.1.2 TheCopy-AssignmentOperator

13.1.3 TheDestructor

13.1.4 TheRuleofThree/Five

13.1.5 Using = default

13.1.6 PreventingCopies

13.2 CopyControl andResourceManagement

13.2.1 ClassesThatActLikeValues

13.2.2 DefiningClassesThatActLikePointers

13.3 Swap

13.4 ACopy-ControlExample

13.5 ClassesThatManageDynamicMemory

13.6 MovingObjects

13.6.1 RvalueReferences

13.6.2 MoveConstructor andMoveAssignment

13.6.3 RvalueReferencesandMemberFunctions

ChapterSummary

DefinedTerms

Chapter 14 Overloaded Operations and Conversions

14.1 BasicConcepts

14.2 Input andOutputOperators

14.2.1 Overloading the Output Operator >

14.3 Arithmetic andRelationalOperators

14.3.1 EqualityOperators

14.3.2 RelationalOperators

14.4 AssignmentOperators

14.5 SubscriptOperator

14.6 Increment andDecrementOperators

14.7 MemberAccessOperators

14.8 Function-CallOperator

xiv Contents

14.8.1 LambdasAreFunctionObjects

14.8.2 Library-DefinedFunctionObjects

14.8.3 Callable Objects and function

14.9 Overloading,Conversions, andOperators

14.9.1 ConversionOperators

14.9.2 AvoidingAmbiguousConversions

14.9.3 FunctionMatchingandOverloadedOperators

ChapterSummary

DefinedTerms

Chapter 15 Object-Oriented Programming

15.1 OOP:AnOverview

15.2 DefiningBaseandDerivedClasses

15.2.1 DefiningaBaseClass

15.2.2 DefiningaDerivedClass

15.2.3 Conversions andInheritance

15.3 VirtualFunctions

15.4 AbstractBaseClasses

15.5 AccessControl andInheritance

15.6 ClassScopeunder Inheritance

15.7 Constructors andCopyControl

15.7.1 VirtualDestructors

15.7.2 SynthesizedCopyControl andInheritance

15.7.3 Derived-ClassCopy-ControlMembers

15.7.4 InheritedConstructors

15.8 Containers andInheritance

15.8.1 Writing a BasketClass

15.9 TextQueriesRevisited

15.9.1 AnObject-OrientedSolution

15.9.2 The Query_base and QueryClasses

15.9.3 TheDerivedClasses

15.9.4 The evalFunctions

ChapterSummary

DefinedTerms

Chapter 16 Templates and Generic Programming

16.1 DefiningaTemplate

16.1.1 FunctionTemplates

16.1.2 ClassTemplates

16.1.3 TemplateParameters

16.1.4 MemberTemplates

16.1.5 Controlling Instantiations

16.1.6 Efficiency and Flexibility

16.2 TemplateArgumentDeduction

16.2.1 Conversions andTemplateTypeParameters

16.2.2 Function-TemplateExplicitArguments

16.2.3 Trailing Return Types and Type Transformation

Contents xv

16.2.4 FunctionPointers andArgumentDeduction

16.2.5 TemplateArgumentDeductionandReferences

16.2.6 Understanding std::move

16.2.7 Forwarding

16.3 OverloadingandTemplates

16.4 VariadicTemplates

16.4.1 WritingaVariadicFunctionTemplate

16.4.2 PackExpansion

16.4.3 ForwardingParameterPacks

16.5 Template Specializations

ChapterSummary

DefinedTerms

Part IV Advanced Topics

Chapter 17 Specialized Library Facilities

17.1 The tupleType

17.1.1 Defining and Initializing tuples

17.1.2 Using a tuple toReturnMultipleValues

17.2 The bitsetType

17.2.1 Defining and Initializing bitsets

17.2.2 Operations on bitsets

17.3 RegularExpressions

17.3.1 UsingtheRegularExpressionLibrary

17.3.2 TheMatchandRegex IteratorTypes

17.3.3 UsingSubexpressions

17.3.4 Using regex_replace

17.4 RandomNumbers

17.4.1 Random-NumberEngines andDistribution

17.4.2 OtherKinds ofDistributions

17.5 The IOLibraryRevisited

17.5.1 FormattedInput andOutput

17.5.2 UnformattedInput/OutputOperations

17.5.3 RandomAccess toaStream

ChapterSummary

DefinedTerms

Chapter 18 Tools for Large Programs

18.1 ExceptionHandling

18.1.1 ThrowinganException

18.1.2 CatchinganException

18.1.3 Function tryBlocks andConstructors

18.1.4 The noexceptExceptionSpecification

18.1.5 ExceptionClassHierarchies

18.2 Namespaces

18.2.1 NamespaceDefinitions

xvi Contents

18.2.2 UsingNamespaceMembers

18.2.3 Classes,Namespaces,andScope

18.2.4 OverloadingandNamespaces

18.3 Multiple andVirtual Inheritance

18.3.1 Multiple Inheritance

18.3.2 Conversions andMultipleBaseClasses

18.3.3 ClassScopeunderMultiple Inheritance

18.3.4 Virtual Inheritance

18.3.5 Constructors andVirtual Inheritance

ChapterSummary

DefinedTerms

Chapter 19 Specialized Tools and Techniques

19.1 Controlling Memory Allocation

19.1.1 Overloading new and delete

19.1.2 Placement newExpressions

19.2 Run-TimeTypeIdentification

19.2.1 The dynamic_castOperator

19.2.2 The typeidOperator

19.2.3 UsingRTTI

19.2.4 The type_infoClass

19.3 Enumerations

19.4 Pointer toClassMember

19.4.1 Pointers toDataMembers

19.4.2 Pointers toMemberFunctions

19.4.3 UsingMemberFunctions asCallableObjects

19.5 NestedClasses

19.6 union:ASpace-SavingClass

19.7 LocalClasses

19.8 InherentlyNonportableFeatures

19.8.1 Bit-fields

19.8.2 volatileQualifier

19.8.3 Linkage Directives: extern "C"

ChapterSummary

DefinedTerms

Appendix A The Library

A.1 LibraryNames andHeaders

A.2 ABriefTourof theAlgorithms

A.2.1 Algorithms toFindanObject

A.2.2 OtherRead-OnlyAlgorithms

A.2.3 BinarySearchAlgorithms

A.2.4 AlgorithmsThatWriteContainerElements

A.2.5 PartitioningandSortingAlgorithms

A.2.6 GeneralReorderingOperations

A.2.7 PermutationAlgorithms

A.2.8 SetAlgorithms forSortedSequences

Contents xvii

A.2.9 MinimumandMaximumValues

A.2.10 NumericAlgorithms

A.3 RandomNumbers

A.3.1 RandomNumberDistributions

A.3.2 RandomNumberEngines

Index

New Features in C++

2.1.1 long longType

2.2.1 List Initialization

2.3.2 nullptrLiteral

2.4.4 constexprVariables

2.5.1 TypeAliasDeclarations

2.5.2 The autoTypeSpecifier

2.5.3 The decltypeTypeSpecifier

2.6.1 In-Class Initializers

3.2.2 Using auto or decltype forTypeAbbreviation

3.2.3 Range forStatement

3.3 Defining a vector of vectors

3.3.1 List Initialization for vectors

3.4.1 Container cbegin and cendFunctions

3.5.3 Library begin and endFunctions

3.6 Using auto or decltype to SimplifyDeclarations

4.2 RoundingRules forDivision

4.4 Assignment fromaBracedListofValues

4.9 sizeofAppliedtoaClassMember

5.4.3 Range forStatement

6.2.6 Library initializer_listClass

6.3.2 List InitializingaReturnValue

6.3.3 Declaring a Trailing Return Type

6.3.3 Using decltype to Simplify Return Type Declarations

6.5.2 constexprFunctions

7.1.4 Using = default toGenerateaDefaultConstructor

7.3.1 In-class Initializers forMembersofClassType

7.5.2 DelegatingConstructors

7.5.6 constexprConstructors

8.2.1 Using strings for File Names

9.1 The array and forward_listContainers

9.2.3 Container cbegin and cendFunctions

9.2.4 List InitializationforContainers

9.2.5 Container Nonmember swapFunctions

9.3.1 Return Type for Container insertMembers

9.3.1 Container emplaceMembers

xix

xx New Features in C++

9.4 shrink_to_fit

9.5.5 Numeric Conversion Functions for strings

10.3.2 LambdaExpressions

10.3.3 Trailing Return Type in Lambda Expressions

10.3.4 The Library bindFunction

11.2.1 List Initializationof anAssociativeContainer

11.2.3 List Initializing pairReturnType

11.3.2 List Initialization of a pair

11.4 TheUnorderedContainers

12.1 SmartPointers

12.1.1 The shared_ptrClass

12.1.2 List InitializationofDynamicallyAllocatedObjects

12.1.2 autoandDynamicAllocation

12.1.5 The unique_ptrClass

12.1.6 The weak_ptrClass

12.2.1 Range for Doesn't Apply to Dynamically Allocated Arrays

12.2.1 List InitializationofDynamicallyAllocatedArrays

12.2.1 autoCan'tBeUsedtoAllocateanArray

12.2.2 allocator::constructCanUseanyConstructor

13.1.5 Using = default forCopy-ControlMembers

13.1.6 Using = delete toPreventCopyingClassObjects

13.5 MovingInsteadofCopyingClassObjects

13.6.1 RvalueReferences

13.6.1 The Library moveFunction

13.6.2 MoveConstructor andMoveAssignment

13.6.2 Move Constructors Usually Should Be noexcept

13.6.2 MoveIterators

13.6.3 ReferenceQualifiedMemberFunctions

14.8.3 The functionClassTemplate

14.9.1 explicitConversionOperators

15.2.2 overrideSpecifier forVirtualFunctions

15.2.2 Preventing Inheritance by Defining a Class as final

15.3 override and final Specifiers for Virtual Functions

15.7.2 DeletedCopyControl andInheritance

15.7.4 InheritedConstructors

16.1.2 DeclaringaTemplateTypeParameteras aFriend

16.1.2 TemplateTypeAliases

16.1.3 DefaultTemplateArguments forTemplateFunctions

16.1.5 ExplicitControlof Instantiation

16.2.3 Template Functions and Trailing Return Types

16.2.5 ReferenceCollapsingRules

16.2.6 static_cast fromanLvaluetoanRvalue

16.2.7 The Library forwardFunction

16.4 VariadicTemplates

16.4 The sizeof...Operator

16.4.3 VariadicTemplates andForwarding

New Features in C++11 xxi

17.1 The Library TupleClassTemplate

17.2.2 New bitsetOperations

17.3 TheRegularExpressionLibrary

17.4 TheRandomNumberLibrary

17.5.1 Floating-Point FormatControl

18.1.4 The noexceptExceptionSpecifier

18.1.4 The noexceptOperator

18.2.1 InlineNamespaces

18.3.1 InheritedConstructors andMultiple Inheritance

19.3 Scoped enums

19.3 Specifying the Type Used to Hold an enum

19.3 Forward Declarations for enums

19.4.3 The Library mem_fnClassTemplate

19.6 UnionMembersofClassTypes

内容摘要:

《C++ Primer英文版(第5版)》久负盛名的C++经典教程,时隔八年之久,终迎来的重大升级。除令全球无数程序员从中受益,甚至为之迷醉的--C++大师Stanley B. Lippman的丰富实践经验,C++标准委员会原负责人Josée Lajoie对C++标准的深入理解,以及C++先驱Barbara E. Moo在C++教学方面的真知灼见外,更是基于全新的C++11标准进行了全面而彻底的内容更新。非常难能可贵的是,书中所有示例均全部采用C++11标准改写,这在经典升级版中极其罕见--充分体现了C++语言的重大进展极其全面实践。书中丰富的教学辅助内容、醒目的知识点提示,以及精心组织的编程示范,让《C++ Primer英文版(第5版)》这本书在C++领域的专业地位更加不可动摇。无论是初学者入门,或是中、高级程序员提升,《C++ Primer英文版(第5版)》均为不容置疑的优选。

编辑推荐:

新标准C++11发布,距上一版本已10年;《C++Primer英文版(第5版)》是持续更新的全球C++读本。
  经过前四个版本积累,第5版的体例堪称完美。
  这一版本作者历时3年完成,极力避免在原版上升级,而是将C++11的新特性真正融入各章节;更将所有代码示例用C++11的简化写法完成,而不是仅单独增加内容。
  
海报:

书籍规格:

书籍详细信息
书名C++ Primer站内查询相似图书
9787121200380
如需购买下载《C++ Primer》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位电子工业出版社
版次1版印次1
定价(元)99.0语种英文
尺寸24 × 19装帧平装
页数印数

书籍信息归属:

C++ Primer是电子工业出版社于2013.5出版的中图分类号为 TP312 的主题关于 C语言-程序设计-教材-英文 的书籍。