📄 contents.html
字号:
<A HREF="Chapter11.html#Heading331">The copy-constructor</A><BR>
<UL>
<A HREF="Chapter11.html#Heading332">Passing & returning by value</A><BR>
<UL>
<A HREF="Chapter11.html#Heading333">Passing & returning large objects</A><BR>
<A HREF="Chapter11.html#Heading334">Function-call stack frame</A><BR>
<A HREF="Chapter11.html#Heading335">Re-entrancy</A><BR>
<A HREF="Chapter11.html#Heading336">Bitcopy versus initialization</A><BR>
</UL>
<A HREF="Chapter11.html#Heading337">Copy-construction</A><BR>
<UL>
<A HREF="Chapter11.html#Heading338">Temporary objects</A><BR>
</UL>
<A HREF="Chapter11.html#Heading339">Default copy-constructor</A><BR>
<A HREF="Chapter11.html#Heading340">Alternatives to copy-construction</A><BR>
<UL>
<A HREF="Chapter11.html#Heading341">Preventing pass-by-value</A><BR>
<A HREF="Chapter11.html#Heading342">Functions that modify outside objects</A><BR>
</UL>
</UL>
<A HREF="Chapter11.html#Heading343">Pointers to members</A><BR>
<UL>
<A HREF="Chapter11.html#Heading344">Functions</A><BR>
<UL>
<A HREF="Chapter11.html#Heading345">An example</A><BR>
</UL>
</UL>
<A HREF="Chapter11.html#Heading346">Summary</A><BR>
<A HREF="Chapter11.html#Heading347">Exercises</A><BR>
</UL>
<A HREF="Chapter12.html">12: Operator Overloading</A><BR>
<UL>
<A HREF="Chapter12.html#Heading349">Warning & reassurance</A><BR>
<A HREF="Chapter12.html#Heading350">Syntax</A><BR>
<A HREF="Chapter12.html#Heading351">Overloadable operators</A><BR>
<UL>
<A HREF="Chapter12.html#Heading352">Unary operators</A><BR>
<UL>
<A HREF="Chapter12.html#Heading353">Increment & decrement</A><BR>
</UL>
<A HREF="Chapter12.html#Heading354">Binary operators</A><BR>
<A HREF="Chapter12.html#Heading355">Arguments & return values</A><BR>
<UL>
<A HREF="Chapter12.html#Heading356">Return by value as const</A><BR>
<A HREF="Chapter12.html#Heading357">The return optimization</A><BR>
</UL>
<A HREF="Chapter12.html#Heading358">Unusual operators</A><BR>
<UL>
<A HREF="Chapter12.html#Heading359">Operator comma</A><BR>
<A HREF="Chapter12.html#Heading360">Operator-></A><BR>
<A HREF="Chapter12.html#Heading361">A nested iterator</A><BR>
<A HREF="Chapter12.html#Heading362">Operator->*</A><BR>
</UL>
<A HREF="Chapter12.html#Heading363">Operators you can’t overload</A><BR>
</UL>
<A HREF="Chapter12.html#Heading364">Non-member operators</A><BR>
<UL>
<A HREF="Chapter12.html#Heading365">Basic guidelines</A><BR>
</UL>
<A HREF="Chapter12.html#Heading366">Overloading assignment</A><BR>
<UL>
<A HREF="Chapter12.html#Heading367">Behavior of operator=</A><BR>
<UL>
<A HREF="Chapter12.html#Heading368">Pointers in classes</A><BR>
<A HREF="Chapter12.html#Heading369">Reference Counting</A><BR>
<A HREF="Chapter12.html#Heading370">Automatic operator= creation</A><BR>
</UL>
</UL>
<A HREF="Chapter12.html#Heading371">Automatic type conversion</A><BR>
<UL>
<A HREF="Chapter12.html#Heading372">Constructor conversion</A><BR>
<UL>
<A HREF="Chapter12.html#Heading373">Preventing constructor conversion</A><BR>
</UL>
<A HREF="Chapter12.html#Heading374">Operator conversion</A><BR>
<UL>
<A HREF="Chapter12.html#Heading375">Reflexivity</A><BR>
</UL>
<A HREF="Chapter12.html#Heading376">Type conversion example</A><BR>
<A HREF="Chapter12.html#Heading377">Pitfalls in automatic type conversion</A><BR>
<UL>
<A HREF="Chapter12.html#Heading378">Hidden activities</A><BR>
</UL>
</UL>
<A HREF="Chapter12.html#Heading379">Summary</A><BR>
<A HREF="Chapter12.html#Heading380">Exercises</A><BR>
</UL>
<A HREF="Chapter13.html">13: Dynamic Object Creation</A><BR>
<UL>
<A HREF="Chapter13.html#Heading382">Object creation</A><BR>
<UL>
<A HREF="Chapter13.html#Heading383">C’s approach to the heap</A><BR>
<A HREF="Chapter13.html#Heading384">operator new</A><BR>
<A HREF="Chapter13.html#Heading385">operator delete</A><BR>
<A HREF="Chapter13.html#Heading386">A simple example</A><BR>
<A HREF="Chapter13.html#Heading387">Memory manager overhead</A><BR>
</UL>
<A HREF="Chapter13.html#Heading388">Early examples redesigned</A><BR>
<UL>
<A HREF="Chapter13.html#Heading389">delete void* is probably a bug</A><BR>
<A HREF="Chapter13.html#Heading390">Cleanup responsibility with pointers</A><BR>
<A HREF="Chapter13.html#Heading391">Stash for pointers</A><BR>
<UL>
<A HREF="Chapter13.html#Heading392">A test</A><BR>
</UL>
</UL>
<A HREF="Chapter13.html#Heading393">new & delete for arrays</A><BR>
<UL>
<A HREF="Chapter13.html#Heading394">Making a pointer more like an array</A><BR>
</UL>
<A HREF="Chapter13.html#Heading395">Running out of storage</A><BR>
<A HREF="Chapter13.html#Heading396">Overloading new & delete</A><BR>
<UL>
<A HREF="Chapter13.html#Heading397">Overloading global new & delete</A><BR>
<A HREF="Chapter13.html#Heading398">Overloading new & delete for a class</A><BR>
<A HREF="Chapter13.html#Heading399">Overloading new & delete for arrays</A><BR>
<A HREF="Chapter13.html#Heading400">Constructor calls</A><BR>
<A HREF="Chapter13.html#Heading401">placement new & delete</A><BR>
</UL>
<A HREF="Chapter13.html#Heading402">Summary</A><BR>
<A HREF="Chapter13.html#Heading403">Exercises</A><BR>
</UL>
<A HREF="Chapter14.html">14: Inheritance & Composition</A><BR>
<UL>
<A HREF="Chapter14.html#Heading405">Composition syntax</A><BR>
<A HREF="Chapter14.html#Heading406">Inheritance syntax</A><BR>
<A HREF="Chapter14.html#Heading407">The constructor initializer list</A><BR>
<UL>
<A HREF="Chapter14.html#Heading408">Member object initialization</A><BR>
<A HREF="Chapter14.html#Heading409">Built-in types in the initializer list</A><BR>
</UL>
<A HREF="Chapter14.html#Heading410">Combining composition & inheritance</A><BR>
<UL>
<A HREF="Chapter14.html#Heading411">Automatic destructor calls</A><BR>
</UL>
<A HREF="Chapter14.html#Heading412">Order of constructor & destructor calls</A><BR>
<A HREF="Chapter14.html#Heading413">Name hiding</A><BR>
<A HREF="Chapter14.html#Heading414">Functions that don’t automatically inherit</A><BR>
<UL>
<A HREF="Chapter14.html#Heading415">Inheritance and static member functions</A><BR>
</UL>
<A HREF="Chapter14.html#Heading416">Choosing composition vs. inheritance</A><BR>
<UL>
<A HREF="Chapter14.html#Heading417">Subtyping</A><BR>
<A HREF="Chapter14.html#Heading418">private inheritance</A><BR>
<UL>
<A HREF="Chapter14.html#Heading419">Publicizing privately inherited members</A><BR>
</UL>
</UL>
<A HREF="Chapter14.html#Heading420">protected</A><BR>
<UL>
<A HREF="Chapter14.html#Heading421">protected inheritance</A><BR>
</UL>
<A HREF="Chapter14.html#Heading422">Operator overloading & inheritance</A><BR>
<A HREF="Chapter14.html#Heading423">Multiple inheritance</A><BR>
<A HREF="Chapter14.html#Heading424">Incremental development</A><BR>
<A HREF="Chapter14.html#Heading425">Upcasting</A><BR>
<UL>
<A HREF="Chapter14.html#Heading426">Why “upcasting?”</A><BR>
<A HREF="Chapter14.html#Heading427">Upcasting and the copy-constructor</A><BR>
<A HREF="Chapter14.html#Heading428">Composition vs. inheritance (revisited)</A><BR>
<A HREF="Chapter14.html#Heading429">Pointer & reference upcasting</A><BR>
<A HREF="Chapter14.html#Heading430">A crisis</A><BR>
</UL>
<A HREF="Chapter14.html#Heading431">Summary</A><BR>
<A HREF="Chapter14.html#Heading432">Exercises</A><BR>
</UL>
<A HREF="Chapter15.html">15: Polymorphism & Virtual Functions</A><BR>
<UL>
<A HREF="Chapter15.html#Heading434">Evolution of C++ programmers</A><BR>
<A HREF="Chapter15.html#Heading435">Upcasting</A><BR>
<A HREF="Chapter15.html#Heading436">The problem</A><BR>
<UL>
<A HREF="Chapter15.html#Heading437">Function call binding</A><BR>
</UL>
<A HREF="Chapter15.html#Heading438">virtual functions</A><BR>
<UL>
<A HREF="Chapter15.html#Heading439">Extensibility</A><BR>
</UL>
<A HREF="Chapter15.html#Heading440">How C++ implements late binding</A><BR>
<UL>
<A HREF="Chapter15.html#Heading441">Storing type information</A><BR>
<A HREF="Chapter15.html#Heading442">Picturing virtual functions</A><BR>
<A HREF="Chapter15.html#Heading443">Under the hood</A><BR>
<A HREF="Chapter15.html#Heading444">Installing the vpointer</A><BR>
<A HREF="Chapter15.html#Heading445">Objects are different</A><BR>
</UL>
<A HREF="Chapter15.html#Heading446">Why virtual functions?</A><BR>
<A HREF="Chapter15.html#Heading447">Abstract base classes and pure virtual functions</A><BR>
<UL>
<A HREF="Chapter15.html#Heading448">Pure virtual definitions</A><BR>
</UL>
<A HREF="Chapter15.html#Heading449">Inheritance and the VTABLE</A><BR>
<UL>
<A HREF="Chapter15.html#Heading450">Object slicing</A><BR>
</UL>
<A HREF="Chapter15.html#Heading451">Overloading & overriding</A><BR>
<UL>
<A HREF="Chapter15.html#Heading452">Variant return type</A><BR>
</UL>
<A HREF="Chapter15.html#Heading453">virtual functions & constructors</A><BR>
<UL>
<A HREF="Chapter15.html#Heading454">Order of constructor calls</A><BR>
<A HREF="Chapter15.html#Heading455">Behavior of virtual functions inside constructors</A><BR>
</UL>
<A HREF="Chapter15.html#Heading456">Destructors and virtual destructors</A><BR>
<UL>
<A HREF="Chapter15.html#Heading457">Pure virtual destructors</A><BR>
<A HREF="Chapter15.html#Heading458">Virtuals in destructors</A><BR>
<A HREF="Chapter15.html#Heading459">Creating an object-based hierarchy</A><BR>
</UL>
<A HREF="Chapter15.html#Heading460">Operator overloading</A><BR>
<A HREF="Chapter15.html#Heading461">Downcasting</A><BR>
<A HREF="Chapter15.html#Heading462">Summary</A><BR>
<A HREF="Chapter15.html#Heading463">Exercises</A><BR>
</UL>
<A HREF="Chapter16.html">16: Introduction to Templates</A><BR>
<UL>
<A HREF="Chapter16.html#Heading465">Containers</A><BR>
<UL>
<A HREF="Chapter16.html#Heading466">The need for containers</A><BR>
</UL>
<A HREF="Chapter16.html#Heading467">Overview of templates</A><BR>
<UL>
<A HREF="Chapter16.html#Heading468">The template solution</A><BR>
</UL>
<A HREF="Chapter16.html#Heading469">Template syntax</A><BR>
<UL>
<A HREF="Chapter16.html#Heading470">Non-inline function definitions</A><BR>
<UL>
<A HREF="Chapter16.html#Heading471">Header files</A><BR>
</UL>
<A HREF="Chapter16.html#Heading472">IntStack as a template</A><BR>
<A HREF="Chapter16.html#Heading473">Constants in templates</A><BR>
</UL>
<A HREF="Chapter16.html#Heading474">Stack and Stash as templates</A><BR>
<UL>
<A HREF="Chapter16.html#Heading475">Templatized pointer Stash</A><BR>
</UL>
<A HREF="Chapter16.html#Heading476">Turning ownership on and off</A><BR>
<A HREF="Chapter16.html#Heading477">Holding objects by value</A><BR>
<A HREF="Chapter16.html#Heading478">Introducing iterators</A><BR>
<UL>
<A HREF="Chapter16.html#Heading479">Stack with iterators</A><BR>
<A HREF="Chapter16.html#Heading480">PStash with iterators</A><BR>
</UL>
<A HREF="Chapter16.html#Heading481">Why iterators?</A><BR>
<UL>
<A HREF="Chapter16.html#Heading482">Function templates</A><BR>
</UL>
<A HREF="Chapter16.html#Heading483">Summary</A><BR>
<A HREF="Chapter16.html#Heading484">Exercises</A><BR>
</UL>
<A HREF="AppendixA.html">A: Coding Style</A><BR>
<A HREF="AppendixB.html">B: Programming Guidelines</A><BR>
<A HREF="AppendixC.html">C: Recommended Reading</A><BR>
<UL>
<A HREF="AppendixC.html#Heading488">C</A><BR>
<A HREF="AppendixC.html#Heading489">General C++</A><BR>
<UL>
<A HREF="AppendixC.html#Heading490">My own list of books </A><BR>
</UL>
<A HREF="AppendixC.html#Heading491">Depth & dark corners</A><BR>
<A HREF="AppendixC.html#Heading492">Analysis & design</A><BR>
</UL>
<A HREF="DocIndex.html">Index</A><BR>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -