⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tocback.htm

📁 一个非常适合初学者入门的有关c++的文档
💻 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>Effective C++, 2E - Table of Contents</TITLE>
<LINK REL=STYLESHEET HREF=../INTRO/ECMEC.CSS>

<SCRIPT LANGUAGE="JavaScript">var imagemax = 0; setCurrentMax(0);</SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="../JAVA/COOKIE.JS"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="../JAVA/DINGBATS.JS"></SCRIPT>
<SCRIPT>
var dingbase = "";
var dingtext = "";
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">

function writeItem (itemID) {
var itemID = new Array();
itemID[0] = "Shifting from C to C++ - Item 1. <BR>Page 12";
itemID[1] = "Shifting from C to C++ - Item 2. <BR>Page 31";
itemID[2] = "Shifting from C to C++ - Item 3. <BR>Page 42";
itemID[3] = "Shifting from C to C++ - Item 4. <BR>Page 53";
parent.frame[0].document.item(itemID[i]);

}

var chunk = getCookie("chunk");
if(chunk != "Book")
{top.location.reload();}

</SCRIPT>

</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<!-- SectionName="Effective C++ Contents" -->
<DIV ID="egtitle">Effective C++ Contents</DIV>
<P>

<TABLE CELLPADDING="3" WIDTH="100%" BORDER="0">
<TR><TD COLSPAN="3" VALIGN="TOP"><DIV ID="eitemtoc"><a href="E_FR.HTM#ded" TARGET="_top">Dedication</A></DIV></TD></TR>
<TR><TD COLSPAN="3" VALIGN="TOP"><DIV ID="eitemtoc"><A HREF="E_FR.HTM#32" TARGET="_top">Preface</A></DIV></TD></TR>
<TR><TD COLSPAN="3" VALIGN="TOP"><DIV ID="eitemtoc"><A HREF="E_FR.HTM#52" TARGET="_top">Acknowledgments</A></DIV></TD></TR>
<TR><TD COLSPAN="3" VALIGN="TOP"><DIV ID="eitemtoc"><A HREF="E_FR.HTM#1709" TARGET="_top">Introduction</A></DIV></TD></TR>
<TR><TD COLSPAN="3" VALIGN="TOP"><HR WIDTH="100%" SIZE="1"><DIV ID="eitemtoc"><NOBR><A HREF="E_FR.HTM#23036" TARGET="_top">Shifting from C to C++</A></NOBR></DIV></TD></TR>
<TD ROWSPAN="4"> &nbsp; </TD>
<TD WIDTH="10%" VALIGN="TOP"><A HREF="E_FR.HTM#1790" TARGET="_top"><NOBR>Item 1:</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</NOBR></TD><TD>Prefer </A><CODE>const</CODE> and <CODE>inline</CODE> to <CODE>#define</CODE>.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="E_FR.HTM#95970" TARGET="_top"><NOBR>Item 2:</A></NOBR></TD><TD>Prefer </A><CODE>&lt;iostream&gt;</CODE> to <CODE>&lt;stdio.h&gt;</CODE>.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="E_FR.HTM#1838" TARGET="_top"><NOBR>Item 3:</A></NOBR></TD><TD>Prefer </A><CODE>new</CODE> and <CODE>delete</CODE> to <CODE>malloc</CODE> and <CODE>free</CODE>.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="E_FR.HTM#1854" TARGET="_top"><NOBR>Item 4:</A></NOBR></TD><TD>Prefer C++-style comments.</TD></TR>
<TR><TD COLSPAN="3" VALIGN="TOP"><HR WIDTH="100%" SIZE="1"><DIV ID="eitemtoc"><NOBR><A HREF="E_FR.HTM#1866" TARGET="_top">Memory Management</A></NOBR></DIV></TD></TR>
<TD ROWSPAN="7"> &nbsp; </TD>
<TR><TD VALIGN="TOP"><A HREF="E_FR.HTM#1869" TARGET="_top">Item 5:</A></NOBR></TD><TD>Use the same form in corresponding uses of </A><CODE>new</CODE>and <CODE>delete</CODE>.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="E_FR.HTM#1885" TARGET="_top"><NOBR>Item 6:</A></NOBR></TD><TD>Use </A><CODE>delete</CODE> on pointer members in destructors.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="E_FR.HTM#1894" TARGET="_top"><NOBR>Item 7:</A></NOBR></TD><TD>Be prepared for out-of-memory conditions.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="E_FR.HTM#120851" TARGET="_top"><NOBR>Item 8:</A></NOBR></TD><TD>Adhere to convention when writing </A><CODE>operator</CODE> <CODE>new</CODE>and <CODE>operator</CODE> <CODE>delete</CODE>.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="E_FR.HTM#1961" TARGET="_top"><NOBR>Item 9:</A></NOBR></TD><TD>Avoid hiding the "normal" form of </A><CODE>new</CODE>.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="E_FR.HTM#1987" TARGET="_top"><NOBR>Item 10:</A></NOBR></TD><TD>Write </A><CODE>operator</CODE> <CODE>delete</CODE> if you write <CODE>operator</CODE> <CODE>new</CODE>.</TD></TR>
<TR><TD COLSPAN="3" VALIGN="TOP"><HR WIDTH="100%" SIZE="1"><DIV ID="eitemtoc"><NOBR><A HREF="WAIT.HTM#2039">Constructors, Destructors, and Assignment Operators</A></NOBR></DIV></TD></TR>
<TD ROWSPAN="8"> &nbsp; </TD>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#2042"><NOBR>Item 11:</A></NOBR></TD><TD>Declare a copy constructor and an assignment operator for classes with dynamically allocated memory.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#2071"><NOBR>Item 12:</A></NOBR></TD><TD>Prefer initialization to assignment in constructors.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#2117"><NOBR>Item 13:</A></NOBR></TD><TD>List members in an initialization list in the order in which they are declared.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#223029"><NOBR>Item 14:</A></NOBR></TD><TD>Make sure base classes have virtual destructors.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#2182"><NOBR>Item 15:</A></NOBR></TD><TD>Have </A><CODE>operator=</CODE> return a reference to <CODE>*this</CODE>.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#2225"><NOBR>Item 16:</A></NOBR></TD><TD>Assign to all data members in </A><CODE>operator=</CODE>.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#2264"><NOBR>Item 17:</A></NOBR></TD><TD>Check for assignment to self in </A><CODE>operator=</CODE>.</TD></TR>
<TR><TD COLSPAN="3" VALIGN="TOP"><HR WIDTH="100%" SIZE="1"><DIV ID="eitemtoc"><NOBR><A HREF="WAIT.HTM#2326">Classes and Functions: Design and Declaration</A></NOBR></DIV></TD></TR>
<TD ROWSPAN="12"> &nbsp; </TD>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#17774"><NOBR>Item 18:</A></NOBR></TD><TD>Strive for class interfaces that are complete and minimal.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#5887"><NOBR>Item 19:</A></NOBR></TD><TD>Differentiate among member functions, non-member functions, and friend functions.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#5976"><NOBR>Item 20:</A></NOBR></TD><TD>Avoid data members in the public interface.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#6003"><NOBR>Item 21:</A></NOBR></TD><TD>Use </A><CODE>const</CODE> whenever possible.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#6133"><NOBR>Item 22:</A></NOBR></TD><TD>Prefer pass-by-reference to pass-by-value.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#6210"><NOBR>Item 23:</A></NOBR></TD><TD>Don't try to return a reference when you must return an object.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#6250"><NOBR>Item 24:</A></NOBR></TD><TD>Choose carefully between function overloading and parameter defaulting.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#6292"><NOBR>Item 25:</A></NOBR></TD><TD>Avoid overloading on a pointer and a numerical type.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#6337"><NOBR>Item 26:</A></NOBR></TD><TD>Guard against potential ambiguity.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#6406"><NOBR>Item 27:</A></NOBR></TD><TD>Explicitly disallow use of implicitly generated member functions you don't want.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#6429"><NOBR>Item 28:</A></NOBR></TD><TD>Partition the global namespace.</TD></TR>
<TR><TD COLSPAN="3" VALIGN="TOP"><HR WIDTH="100%" SIZE="1"><DIV ID="eitemtoc"><NOBR><A HREF="WAIT.HTM#26354">Classes and Functions: Implementation</A></NOBR></DIV></TD></TR>
<TD ROWSPAN="7"> &nbsp; </TD>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#6490"><NOBR>Item 29:</A></NOBR></TD><TD>Avoid returning "handles" to internal data.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#6599"><NOBR>Item 30:</A></NOBR></TD><TD>Avoid member functions that return non-</A><CODE>const</CODE>pointers or references to members less accessible than themselves.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#6650"><NOBR>Item 31:</A></NOBR></TD><TD>Never return a reference to a local object or to a dereferenced pointer initialized by </A><CODE>new</CODE> within the function.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#25939"><NOBR>Item 32:</A></NOBR></TD><TD>Postpone variable definitions as long as possible.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#6729"><NOBR>Item 33:</A></NOBR></TD><TD>Use inlining judiciously.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#6793"><NOBR>Item 34:</A></NOBR></TD><TD>Minimize compilation dependencies
between files.</TD></TR>
<TR><TD COLSPAN="3" VALIGN="TOP"><HR WIDTH="100%" SIZE="1"><DIV ID="eitemtoc"><NOBR><A HREF="WAIT.HTM#6895">Inheritance and Object-Oriented Design</A></NOBR></DIV></TD></TR>
<TD ROWSPAN="11"> &nbsp; </TD>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#6914"><NOBR>Item 35:</A></NOBR></TD><TD>Make sure public inheritance models "isa."</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#7007"><NOBR>Item 36:</A></NOBR></TD><TD>Differentiate between inheritance of interface and inheritance of implementation.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#7167"><NOBR>Item 37:</A></NOBR></TD><TD>Never redefine an inherited nonvirtual function.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#177948"><NOBR>Item 38:</A></NOBR></TD><TD>Never redefine an inherited default
parameter value.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#7269"><NOBR>Item 39:</A></NOBR></TD><TD>Avoid casts down the inheritance hierarchy.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#7424"><NOBR>Item 40:</A></NOBR></TD><TD>Model "has-a" or "is-implemented-in-terms-of" through layering.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#7611"><NOBR>Item 41:</A></NOBR></TD><TD>Differentiate between inheritance and templates.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#21052"><NOBR>Item 42:</A></NOBR></TD><TD>Use private inheritance judiciously.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#7778"><NOBR>Item 43:</A></NOBR></TD><TD>Use multiple inheritance judiciously.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#8113"><NOBR>Item 44:</A></NOBR></TD><TD>Say what you mean; understand what
you're saying.</TD></TR>
<TR><TD COLSPAN="3" VALIGN="TOP"><HR WIDTH="100%" SIZE="1"><DIV ID="eitemtoc"><NOBR><A HREF="WAIT.HTM#8156">Miscellany</A></NOBR></DIV></TD></TR>
<TD ROWSPAN="7"> &nbsp; </TD>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#8160"><NOBR>Item 45:</A></NOBR></TD><TD>Know what functions C++ silently writes and calls.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#195225"><NOBR>Item 46:</A></NOBR></TD><TD>Prefer compile-time and link-time errors to runtime errors.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#8299"><NOBR>Item 47:</A></NOBR></TD><TD>Ensure that non-local static objects are
initialized before they're used.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#8378"><NOBR>Item 48:</A></NOBR></TD><TD>Pay attention to compiler warnings.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#8392"><NOBR>Item 49:</A></NOBR></TD><TD>Familiarize yourself with the standard library.</TD></TR>
<TR><TD VALIGN="TOP"><A HREF="WAIT.HTM#8569"><NOBR>Item 50:</A></NOBR></TD><TD>Improve your understanding of C++.</TD></TR>
<TR><TD COLSPAN="3" VALIGN="TOP"><HR WIDTH="100%" SIZE="1"><DIV ID="eitemtoc"><NOBR><A HREF="E_FR.HTM#239" TARGET="_top">Afterword</A></NOBR></DIV></TD></TR>
<TR><TD COLSPAN="3" VALIGN="TOP"><DIV ID="eitemtoc"><NOBR><A HREF="../BOOKINDX/INDEX.HTM" TARGET="_top">Index</A></NOBR></DIV></TD></TR>
</TABLE>

</p>
</BODY>
</HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -