📄 etoc.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, 2E | Contents</TITLE>
<LINK REL=STYLESHEET HREF=../INTRO/ECMEC.CSS>
<SCRIPT LANGUAGE="JavaScript" SRC="../JAVA/COOKIE.JS"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="../JAVA/DINGBATS.JS"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript">var imagemax = 0; setCurrentMax(0);
var chunk = getCookie("chunk");if(chunk != "Chapter"){top.location.reload();}
var dingbase = "INDEXDIR.HTM"; var dingtext = "EC++ TOC, P"; if (self == top) {
top.location.replace(dingbase + this.location.hash);
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#0000FF" ONLOAD="setResize()">
<!-- SectionName="EC++ Table of Contents" -->
<A NAME="dingp1"></A><DIV ID="egtitle"><font size="+2">Effective C++, Second Edition</font></DIV>
<FONT ID="egtitle">Contents</FONT><SCRIPT>create_link(1);</SCRIPT>
<P>
<TABLE CELLPADDING="3" WIDTH="100%" BORDER="0">
<TR><TD colspan="4" VALIGN="TOP"><FONT ID="eitemtoc"><A NAME="dingp2"></A><A HREF="./ECDED_FR.HTM" TARGET="_top">Dedication</A></FONT><SCRIPT>create_link(2);</SCRIPT>
</TD></TR>
<TR><TD colspan="4" VALIGN="TOP"><FONT ID="eitemtoc"><A NAME="dingp3"></A><A HREF="ECPREFFR.HTM" TARGET="_top">Preface</A></FONT><SCRIPT>create_link(3);</SCRIPT>
</TD></TR>
<TR><TD colspan="4" VALIGN="TOP"><FONT ID="eitemtoc"><A NAME="dingp4"></A><A HREF="ECACK_FR.HTM" TARGET="_top">Acknowledgments</A></FONT><SCRIPT>create_link(4);</SCRIPT>
</TD></TR>
<TR><TD colspan="4" VALIGN="TOP"><FONT ID="eitemtoc"><A NAME="dingp5"></A><A HREF="ECINTRFR.HTM" TARGET="_top">Introduction</A></FONT><SCRIPT>create_link(5);</SCRIPT>
</TD></TR>
<TR><TD colspan="4" VALIGN="TOP"><HR WIDTH="100%" SIZE="1"><FONT ID="eitemtoc"><NOBR><A NAME="dingp6"></A><A HREF="EC1_FR.HTM#222823" TARGET="_top">Shifting from C to C++</A></NOBR></FONT><SCRIPT>create_link(6);</SCRIPT>
</TD></TR>
<TD ROWSPAN="4"> </TD>
<TD WIDTH="10%" VALIGN="TOP"><A NAME="dingp7"></A><A HREF="EC1_FR.HTM#1790" TARGET="_top"><NOBR>Item 1:</A> </NOBR></TD><TD> </TD><TD>Prefer </A><CODE>const</CODE> and <CODE>inline</CODE> to <CODE>#define</CODE>.<SCRIPT>create_link(7);</SCRIPT>
</TD></TR>
<TR><TD VALIGN="TOP"><A NAME="dingp8"></A><A HREF="EC1_FR.HTM#95970" TARGET="_top"><NOBR>Item 2:</A></NOBR></TD><TD> </TD><TD>Prefer </A><CODE><iostream></CODE> to <CODE><stdio.h></CODE>.<SCRIPT>create_link(8);</SCRIPT>
</TD></TR>
<TR><TD VALIGN="TOP"><A NAME="dingp9"></A><A HREF="EC1_FR.HTM#1838" TARGET="_top"><NOBR>Item 3:</A></NOBR></TD><TD> </TD><TD>Prefer </A><CODE>new</CODE> and <CODE>delete</CODE> to <CODE>malloc</CODE> and <CODE>free</CODE>.<SCRIPT>create_link(9);</SCRIPT>
</TD></TR>
<TR><TD VALIGN="TOP"><A NAME="dingp10"></A><A HREF="EC1_FR.HTM#1854" TARGET="_top"><NOBR>Item 4:</A></NOBR></TD><TD> </TD><TD>Prefer C++-style comments.<SCRIPT>create_link(10);</SCRIPT>
</TD></TR>
<TR><TD colspan="4" VALIGN="TOP"><HR WIDTH="100%" SIZE="1"><FONT ID="eitemtoc"><NOBR><A NAME="dingp11"></A><A HREF="EC2_FR.HTM#1865" TARGET="_top">Memory Management</A></NOBR></FONT><SCRIPT>create_link(11);</SCRIPT>
</TD></TR>
<TD ROWSPAN="7"> </TD>
<TR><TD VALIGN="TOP"><A NAME="dingp12"></A><A HREF="EC2_FR.HTM#1869" TARGET="_top"><NOBR>Item 5:</A></NOBR></TD><TD> </TD><TD>Use the same form in corresponding uses of </A><CODE>new</CODE> and <CODE>delete</CODE>.<SCRIPT>create_link(12);</SCRIPT>
</TD></TR>
<TR><TD VALIGN="TOP"><A NAME="dingp13"></A><A HREF="EC2_FR.HTM#1885" TARGET="_top"><NOBR>Item 6:</A></NOBR></TD><TD> </TD><TD>Use </A><CODE>delete</CODE> on pointer members in destructors.<SCRIPT>create_link(13);</SCRIPT>
</TD></TR>
<TR><TD VALIGN="TOP"><A NAME="dingp14"></A><A HREF="EC2_FR.HTM#1894" TARGET="_top"><NOBR>Item 7:</A></NOBR></TD><TD> </TD><TD>Be prepared for out-of-memory conditions.<SCRIPT>create_link(14);</SCRIPT>
</TD></TR>
<TR><TD VALIGN="TOP"><A NAME="dingp15"></A><A HREF="EC2_FR.HTM#120851" TARGET="_top"><NOBR>Item 8:</A></NOBR></TD><TD> </TD><TD>Adhere to convention when writing </A><CODE>operator</CODE> <CODE>new</CODE> and <CODE>operator</CODE> <CODE>delete</CODE>.<SCRIPT>create_link(15);</SCRIPT>
</TD></TR>
<TR><TD VALIGN="TOP"><A NAME="dingp16"></A><A HREF="EC2_FR.HTM#1961" TARGET="_top"><NOBR>Item 9:</A></NOBR></TD><TD> </TD><TD>Avoid hiding the "normal" form of </A><CODE>new</CODE>.<SCRIPT>create_link(16);</SCRIPT>
</TD></TR>
<TR><TD VALIGN="TOP"><A NAME="dingp17"></A><A HREF="EC2_FR.HTM#1986" TARGET="_top"><NOBR>Item 10:</A></NOBR></TD><TD> </TD><TD>Write </A><CODE>operator</CODE> <CODE>delete</CODE> if you write <CODE>operator</CODE> <CODE>new</CODE>.<SCRIPT>create_link(17);</SCRIPT>
</TD></TR>
<TR><TD colspan="4" VALIGN="TOP"><HR WIDTH="100%" SIZE="1"><FONT ID="eitemtoc"><NOBR><A NAME="dingp18"></A><A HREF="EC3_FR.HTM#2039"TARGET="_top">Constructors, Destructors, and Assignment Operators</A></NOBR></FONT><SCRIPT>create_link(18);</SCRIPT>
</TD></TR>
<TD ROWSPAN="8"> </TD>
<TR><TD VALIGN="TOP"><A NAME="dingp19"></A><A HREF="EC3_FR.HTM#2042"TARGET="_top"><NOBR>Item 11:</A></NOBR></TD><TD> </TD><TD>Declare a copy constructor and an assignment operator for classes with dynamically allocated memory.<SCRIPT>create_link(19);</SCRIPT>
</TD></TR>
<TR><TD VALIGN="TOP"><A NAME="px"></A><A NAME="dingp20"></A><A HREF="EC3_FR.HTM#2071"TARGET="_top"><NOBR>Item 12:</A></NOBR></TD><TD> </TD><TD>Prefer initialization to assignment in constructors.<SCRIPT>create_link(20);</SCRIPT>
</TD></TR>
<TR><TD VALIGN="TOP"><A NAME="dingp21"></A><A HREF="EC3_FR.HTM#2117"TARGET="_top"><NOBR>Item 13:</A></NOBR></TD><TD> </TD><TD>List members in an initialization list in the order in which they are declared.<SCRIPT>create_link(21);</SCRIPT>
</TD></TR>
<TR><TD VALIGN="TOP"><A NAME="dingp22"></A><A HREF="EC3_FR.HTM#223029"TARGET="_top"><NOBR>Item 14:</A></NOBR></TD><TD> </TD><TD>Make sure base classes have virtual destructors.<SCRIPT>create_link(22);</SCRIPT>
</TD></TR>
<TR><TD VALIGN="TOP"><A NAME="dingp23"></A><A HREF="EC3_FR.HTM#2182"TARGET="_top"><NOBR>Item 15:</A></NOBR></TD><TD> </TD><TD>Have </A><CODE>operator=</CODE> return a reference to <CODE>*this</CODE>.<SCRIPT>create_link(23);</SCRIPT>
</TD></TR>
<TR><TD VALIGN="TOP"><A NAME="dingp24"></A><A HREF="EC3_FR.HTM#2225"TARGET="_top"><NOBR>Item 16:</A></NOBR></TD><TD> </TD><TD>Assign to all data members in </A><CODE>operator=</CODE>.<SCRIPT>create_link(24);</SCRIPT>
</TD></TR>
<TR><TD VALIGN="TOP"><A NAME="dingp25"></A><A HREF="EC3_FR.HTM#2264"TARGET="_top"><NOBR>Item 17:</A></NOBR></TD><TD> </TD><TD>Check for assignment to self in </A><CODE>operator=</CODE>.<SCRIPT>create_link(25);</SCRIPT>
</TD></TR>
<TR><TD colspan="4" VALIGN="TOP"><HR WIDTH="100%" SIZE="1"><FONT ID="eitemtoc"><NOBR><A NAME="dingp26"></A><A HREF="EC4_FR.HTM#2326"TARGET="_top">Classes and Functions: Design and Declaration</A></NOBR></FONT><SCRIPT>create_link(26);</SCRIPT>
</TD></TR>
<TD ROWSPAN="12"> </TD>
<TR><TD VALIGN="TOP"><A NAME="dingp27"></A><A HREF="EC4_FR.HTM#17774"TARGET="_top"><NOBR>Item 18:</A></NOBR></TD><TD> </TD><TD>Strive for class interfaces that are complete and minimal.<SCRIPT>create_link(27);</SCRIPT>
</TD></TR>
<TR><TD VALIGN="TOP"><A NAME="dingp28"></A><A HREF="EC4_FR.HTM#5887"TARGET="_top"><NOBR>Item 19:</A></NOBR></TD><TD> </TD><TD>Differentiate among member functions, non-member functions, and friend functions.<SCRIPT>create_link(28);</SCRIPT>
</TD></TR>
<TR><TD VALIGN="TOP"><A NAME="dingp29"></A><A HREF="EC4_FR.HTM#5976"TARGET="_top"><NOBR>Item 20:</A></NOBR></TD><TD> </TD><TD>Avoid data members in the public interface.<SCRIPT>create_link(29);</SCRIPT>
</TD></TR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -