IntroductionTypographic ConventionsAcknowledgmentsCompatibility with CProgram StructureStartupTerminationHeader FilesSource FilesPreprocessor Directives#define#undef#ifdef, #ifndef, #else, #endif#if, #elif, #else, #endif#include#error#line#pragmaPreprocessor MacrosFundamental TypesboolBoolean valuesBoolean literalschar and wchar_tCharacter valuesCharacter literalsshort, int, longInteger valuesInteger literalsfloat, double, long doubleFloating-point valuesFloating-point literalsvoidCompound TypesEnumerationsArraysMultidimensional arraysPassing arrays to functionsInitializer lists for arraysStringsString literalsPointersPointer dereferencingPointer arithmeticVoid pointersNull pointersFunction pointersPointers to MembersReferencesReference parametersReferences as l-valuesClass TypesType Conversions and DefinitionsType ConversionsImplicit conversionsPreservation of valuesUser-defined conversionsConverting constructorsType DefinitionsLexical ElementsCommentsIdentifiersReserved WordsLiteralsOperatorsAssociativityPrecedenceScope resolution (::)Array subscript ([ ])Member selection (. and ->)Function call ( () )Value construction ( () )Postfix increment and decrement (++, −−)typeidC++ castsizeofPrefix increment and decrement (++, −−)Bitwise NOT (˜)Logical NOT (!)Unary minus and plus (−, +)Address-of (&)Indirection (*)Allocate and deallocateC-style cast ( () )Pointer-to-member selection (.* and ->*)Arithmetic (*, /, %, +, −)Shift left and right (<<, >>)Relational (<, <=, >, >=, ==, !=)Bitwise AND, XOR, and OR (&, ^, |)Logical AND and OR (&&, ||)Conditional expression (?:)Simple and compound assignments (=, *=, /=, %=, +=, −=, <<=, >>=, &=, |=, ^=)Exception (throw)Sequence (,)ExpressionsScopeLocal ScopeClass ScopeNamespace ScopeFile ScopeOther ScopesEnclosing ScopesDeclarationsDeclaring VariablesPointer variablesInitializationDeclaring FunctionsFunction definitionsDefault argumentsInline functionsStorage ClassesstaticexternmutableautoregisterQualifiersconstvolatileStatementsExpression StatementsNull StatementsCompound StatementsIteration StatementswhiledoforSelection StatementsifswitchJump StatementsbreakcontinuegotoreturnNamespacesusing Declarationsusing DirectivesUnnamed NamespacesClasses, Structs, and UnionsDeclaring ObjectsAccessing MembersDeclaring Data MembersStatic data membersConstant data membersMutable data membersVolatile data membersDeclaring Member FunctionsThe this pointerStatic member functionsConstant member functionsVolatile member functionsAccess Levels for MembersFriendsConstructorsDefault constructorsCopy constructorsExplicit constructorsMember initializersDestructorsNested DeclarationsForward DeclarationsStructsUnionsInheritanceConstructors and InheritanceOrder of constructionBase class initializersDestructors and InheritanceOrder of destructionVirtual destructorsVirtual Member FunctionsAbstract Base ClassesAccess Levels for InheritanceMultiple InheritanceVirtual Base ClassesTemplatesTemplate ClassesInstantiation of template classesMember functions in template classesExplicit specialization of template classesNontype parameters in template classesDefault arguments for template classesTemplate FunctionsInstantiation of template functionsArguments to template functionsExplicit specialization of template functionsNontype parameters in template functionsOverloadingOverloading FunctionsOverloading OperatorsAssignment operatorMemory management operatorsMemory ManagementMemory Allocationnewnew[ ]Placement newFailed allocationMemory Reclamationdeletedelete[ ]Casts and Runtime Type InformationC-Style CastsCasts in C++dynamic_caststatic_castconst_castreinterpret_castRuntime Type Informationtypeidtype_infoException HandlingtrythrowcatchException SpecificationsThe C++ Standard LibraryThe std NamespaceC Standard Library SupportC++ Standard Header FilesI/O Streamscincoutcerrclog