📄 tocback.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" "http://www.w3.org/TR/REC-html40/frameset.dtd">
<HTML LANG="EN">
<HEAD>
<TITLE>More Effective C++ | Table of Contents</TITLE>
<LINK REL=STYLESHEET HREF=../INTRO/ECMEC.CSS>
<SCRIPT LANGUAGE="JavaScript" SRC="../JAVA/COOKIE.JS"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript">var imagemax = 0; setCurrentMax(0);</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">var chunk = getCookie("chunk");if(chunk != "Book"){top.location.reload();}</SCRIPT>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" ONLOAD="setResize()">
<DIV ID="mgtitle">More Effective C++ Contents</DIV>
<P>
<TABLE CELLPADDING="3" WIDTH="100%" BORDER="0">
<TR><TD COLSPAN="3" VALIGN="TOP"><DIV ID="mitemtoc"><a href="M_FR.HTM#ded" TARGET="_top">Dedication</A></DIV></TD></TR>
<TR><TD COLSPAN="3" VALIGN="TOP"><DIV ID="mitemtoc"><a href="M_FR.HTM#pxi" TARGET="_top">Acknowledgments</A></DIV></TD></TR>
<TR><TD COLSPAN="3" VALIGN="TOP"><DIV ID="mitemtoc"><a href="M_FR.HTM#p1" TARGET="_top">Introduction</A></DIV></TD></TR>
<TR><TD COLSPAN="3" VALIGN="TOP"><HR WIDTH="100%" SIZE="1"><DIV ID="mitemtoc"><NOBR><A HREF="M_FR.HTM#10979" TARGET="_top">Basics</A></NOBR></DIV></TD></TR>
<TD ROWSPAN="5"> </TD>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#11029" TARGET="_top"><NOBR>Item 1:</A> </NOBR></TD><TD>Distinguish between pointers and references</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#77216" TARGET="_top"><NOBR>Item 2:</A></NOBR></TD><TD>Prefer C++-style casts</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#84818" TARGET="_top"><NOBR>Item 3:</A></NOBR></TD><TD>Never treat arrays polymorphically</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#5218" TARGET="_top"><NOBR>Item 4:</A></NOBR></TD><TD>Avoid gratuitous default constructors</TD></TR>
<TR><TD COLSPAN="3" VALIGN="TOP"><HR WIDTH="100%" SIZE="1"><DIV ID="mitemtoc"><NOBR><A HREF="M_FR.HTM#5701" TARGET="_top">Operators</A></NOBR></DIV></TD></TR>
<TD ROWSPAN="5"> </TD>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#5970" TARGET="_top"><NOBR>Item 5:</A></NOBR></TD><TD>Be wary of user-defined conversion functions</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#5262" TARGET="_top"><NOBR>Item 6:</A></NOBR></TD><TD>Distinguish between prefix and postfix forms of increment and decrement operators</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#77702" TARGET="_top"><NOBR>Item 7:</A></NOBR></TD><TD>Never overload <CODE>&&</CODE>, <CODE>||</CODE>, or <CODE>,</CODE></TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#33985" TARGET="_top"><NOBR>Item 8:</A></NOBR></TD><TD>Understand the different meanings of <CODE>new</CODE>and <CODE>delete</CODE></TD></TR>
<TR><TD COLSPAN="3" VALIGN="TOP"><HR WIDTH="100%" SIZE="1"><DIV ID="mitemtoc"><NOBR><A HREF="M_FR.HTM#71622" TARGET="_top">Exceptions</A></NOBR></DIV></TD></TR>
<TD ROWSPAN="8"> </TD>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#5292" TARGET="_top"><NOBR>Item 9:</A></NOBR></TD><TD>Use destructors to prevent resource leaks</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#38223" TARGET="_top"><NOBR>Item 10:</A></NOBR></TD><TD>Prevent resource leaks in constructors</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#39749" TARGET="_top"><NOBR>Item 11:</A></NOBR></TD><TD>Prevent exceptions from leaving destructors</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#76790" TARGET="_top"><NOBR>Item 12:</A></NOBR></TD><TD>Understand how throwing an exception differs from passing a parameter or calling a virtual function</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#38224" TARGET="_top"><NOBR>Item 13:</A></NOBR></TD><TD>Catch exceptions by reference</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#6011" TARGET="_top"><NOBR>Item 14:</A></NOBR></TD><TD>Use exception specifications judiciously</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#40989" TARGET="_top"><NOBR>Item 15:</A></NOBR></TD><TD>Understand the costs of exception handling</TD></TR>
<TR><TD COLSPAN="3" VALIGN="TOP"><HR WIDTH="100%" SIZE="1"><DIV ID="mitemtoc"><NOBR><A HREF="M_FR.HTM#66196" TARGET="_top">Efficiency</A></NOBR></DIV></TD></TR>
<TD ROWSPAN="10"> </TD>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#40995" TARGET="_top"><NOBR>Item 16:</A></NOBR></TD><TD>Remember the 80-20 rule</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#41011" TARGET="_top"><NOBR>Item 17:</A></NOBR></TD><TD>Consider using lazy evaluation</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#41124" TARGET="_top"><NOBR>Item 18:</A></NOBR></TD><TD>Amortize the cost of expected computations</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#41177" TARGET="_top"><NOBR>Item 19:</A></NOBR></TD><TD>Understand the origin of temporary objects</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#45310" TARGET="_top"><NOBR>Item 20:</A></NOBR></TD><TD>Facilitate the return value optimization</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#41187" TARGET="_top"><NOBR>Item 21:</A></NOBR></TD><TD>Overload to avoid implicit type conversions</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#41251" TARGET="_top"><NOBR>Item 22:</A></NOBR></TD><TD>Consider using <I>op=</I> instead of stand-alone <I>op</I></A></TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#41253" TARGET="_top"><NOBR>Item 23:</A></NOBR></TD><TD>Consider alternative libraries</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#41284" TARGET="_top"><NOBR>Item 24:</A></NOBR></TD><TD>Understand the costs of virtual functions, multiple inheritance, virtual base classes, and RTTI</TD></TR>
<TR><TD COLSPAN="3" VALIGN="TOP"><HR WIDTH="100%" SIZE="1"><DIV ID="mitemtoc"><NOBR><A HREF="M_FR.HTM#6056" TARGET="_top">Techniques</A></NOBR></DIV></TD></TR>
<TD ROWSPAN="8"> </TD>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#5341" TARGET="_top"><NOBR>Item 25:</A></NOBR></TD><TD>Virtualizing constructors and non-member functions</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#5350" TARGET="_top"><NOBR>Item 26:</A></NOBR></TD><TD>Limiting the number of objects of a class</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#22627" TARGET="_top"><NOBR>Item 27:</A></NOBR></TD><TD>Requiring or prohibiting heap-based objects</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#61766" TARGET="_top"><NOBR>Item 28:</A></NOBR></TD><TD>Smart pointers</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#6073" TARGET="_top"><NOBR>Item 29:</A></NOBR></TD><TD>Reference counting</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#6074" TARGET="_top"><NOBR>Item 30:</A></NOBR></TD><TD>Proxy classes</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#34883" TARGET="_top"><NOBR>Item 31:</A></NOBR></TD><TD>Making functions virtual with respect to more than one object</TD></TR>
<TR><TD COLSPAN="3" VALIGN="TOP"><HR WIDTH="100%" SIZE="1"><DIV ID="mitemtoc"><NOBR><A HREF="M_FR.HTM#54005" TARGET="_top">Miscellany</A></NOBR></DIV></TD></TR>
<TD ROWSPAN="5"> </TD>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#5373" TARGET="_top"><NOBR>Item 32:</A></NOBR></TD><TD>Program in the future tense</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#10947" TARGET="_top"><NOBR>Item 33:</A></NOBR></TD><TD>Make non-leaf classes abstract</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#33950" TARGET="_top"><NOBR>Item 34:</A></NOBR></TD><TD>Understand how to combine C++ and C in the same program</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="M_FR.HTM#5473" TARGET="_top"><NOBR>Item 35:</A></NOBR></TD><TD>Familiarize yourself with the language standard</TD></TR>
<TR><TD COLSPAN="3" VALIGN="TOP"><HR WIDTH="100%" SIZE="1"><DIV ID="mitemtoc"><NOBR><a href="M_FR.HTM#513" TARGET="_top">Recommended Reading</A></NOBR></DIV></TD></TR>
<TR><TD COLSPAN="3" VALIGN="TOP"><DIV ID="mitemtoc"><NOBR><a href="M_FR.HTM#p291" TARGET="_top">An <CODE>auto_ptr</CODE> Implementation</A></NOBR></DIV></TD></TR>
<TR><TD COLSPAN="3" VALIGN="TOP"><DIV ID="mitemtoc"><NOBR><a href="../BOOKINDX/INDEX.HTM" TARGET="_top">General Index</A></NOBR></DIV></TD></TR>
</TABLE>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -