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

📄 mcrcread.htm

📁 一个非常适合初学者入门的有关c++的文档
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<!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++ | Recommended Reading</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" SRC="../JAVA/DINGBATS.JS"></SCRIPT>
<SCRIPT LANGUAGE="Javascript">
var dingbase = "MCREADDR.HTM";
var dingtext = "Rec Reading, P";
if (self == top) {
 top.location.replace(dingbase + this.location.hash);
}
</SCRIPT>

</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" ONLOAD="setResize()">
<!-- SectionName="MEC++ Recommended Reading" -->
<A NAME="513"></A><A NAME="p285"></A>
<DIV ALIGN="CENTER"><FONT SIZE="-1">Back to <A HREF="./MC6_FR.HTM" TARGET="_top">Chapter 6: Miscellany</A> &nbsp;&nbsp;<BR>&nbsp;&nbsp;Continue to <A HREF="./MCAUTOFR.HTM" TARGET="_top">An <CODE> auto_ptr</CODE> Implementation</A></FONT></DIV>


<P><A NAME="dingp1"></A><font ID="mgtitle">Recommended Reading</font><SCRIPT>create_link(1);</SCRIPT>

</P>

<p><A NAME="dingp2"></A>
So your appetite for information on C++ remains unsated. Fear not, there's more &#151; much more. In the sections that follow, I put forth my recommendations for further reading on C++. It goes without saying that such recommendations are both subjective and selective, but in view of the litigious age in which we live, it's probably a good idea to say it <NOBR>anyway.<SCRIPT>create_link(2);</SCRIPT>

</NOBR></p>
<a name="books"></a>
<P><A NAME="dingp3"></A><font ID="mhtitle">Books</font><SCRIPT>create_link(3);</SCRIPT>

</P>

<A NAME="171"> </A>
<P><A NAME="dingp4"></A>
There are hundreds &#151; possibly thousands &#151; of books on C++, and new contenders join the fray with great frequency. I haven't seen all these books, much less read them, but my experience has been that while some books are very good, some of them, well, some of them <NOBR>aren't.<SCRIPT>create_link(4);</SCRIPT>

</NOBR></P><A NAME="262"> </A>
<P><A NAME="dingp5"></A>
What follows is the list of books I find myself consulting when I have questions about software development in C++. Other good books are available, I'm sure, but these are the ones I use, the ones I can truly <I>recommend</I>.<SCRIPT>create_link(5);</SCRIPT>

</P><A NAME="419"> </A>
<P><A NAME="dingp6"></A>
A good place to begin is with the books that describe the language itself. Unless you are crucially dependent on the nuances of the <NOBR><FONT COLOR="#FF0000" SIZE="-2"><B>&deg;</B></FONT><A HREF="http://www.awl.com/cseng/cgi-bin/cdquery.pl?name=cstandard" onMouseOver = "self.status = 'C++ Language Standard Home Page'; return true" onMouseOut = "self.status = self.defaultStatus" target="_top">official</NOBR> standards documents</A>, I suggest you do, <NOBR>too.<SCRIPT>create_link(6);</SCRIPT>

</NOBR></p><A NAME="358"> </A><A NAME="dingp1437"><DL><DD><NOBR><FONT COLOR="#FF0000" SIZE="-2"><B>&deg;</B></FONT><A HREF="http://www.awl.com/cseng/cgi-bin/cdquery.pl?name=anncrm" onMouseOver = "self.status = 'The Annotated C++ Reference Manual Home Page'; return true" onMouseOut = "self.status = self.defaultStatus" target="_top"><I>The</NOBR> Annotated C++ Reference Manual</I></A>, Margaret A. Ellis and Bjarne Stroustrup, Addison-Wesley, 1990, ISBN 0-201-51459-1.<SCRIPT>create_link(7);</SCRIPT>

<BR><BR>
<A NAME="359"></A><A NAME="dingp8"></A><DD><NOBR><FONT COLOR="#FF0000" SIZE="-2"><B>&deg;</B></FONT><A HREF="http://www.awl.com/cseng/cgi-bin/cdquery.pl?name=desec" onMouseOver = "self.status = 'The Design and Evolution of C++ Home Page'; return true" onMouseOut = "self.status = self.defaultStatus" target="_top"><I>The</NOBR> Design and Evolution of C++</I></A>, Bjarne Stroustrup, Addison-Wesley, 1994, ISBN 0-201-54330-3.<SCRIPT>create_link(8);</SCRIPT>

</DL>
<A NAME="697"></A>
<P><A NAME="dingp9"></A>
These books contain not just a description of what's in the language, they also explain the rationale behind the design decisions &#151; something you won't find in the official standard documents. <I>The</I> <I>Anno<A NAME="p286"></A>tated C++ Reference Manual</I> is now incomplete (several language features have been added since it was published &#151; see <A HREF="./MC6_FR.HTM#5473" TARGET="_top">Item 35</A>) and is in some cases out of date, but it is still the best reference for the core parts of the language, including templates and exceptions. <I>The Design and Evolution of C++</I> covers most of what's missing in <I>The Annotated C++ Reference Manual</I>; the only thing it lacks is a discussion of the Standard Template Library (again, see <A HREF="./MC6_FR.HTM#5473" TARGET="_top">Item 35</A>). These books are not tutorials, they're references, but you can't truly understand C++ unless you understand the material in these <NOBR>books.<SCRIPT>create_link(9);</SCRIPT>

</NOBR></P><A NAME="420"> </A>
<P><A NAME="dingp10"></A></A>
For a more general reference on the language, the standard library, and how to apply it, there is no better place to look than the book by the man responsible for C++ in the first <NOBR>place:<SCRIPT>create_link(10);</SCRIPT>

</NOBR></p><A NAME="297"> </A><DL><A NAME="dingp11"></A><DD><NOBR><FONT COLOR="#FF0000" SIZE="-2"><B>&deg;</B></FONT><A HREF="http://www.awl.com/cseng/cgi-bin/cdquery.pl?name=cpl" onMouseOver = "self.status = 'The C++ Programming Language Home Page'; return true" onMouseOut = "self.status = self.defaultStatus" target="_top"><I>The</NOBR> C++ Programming Language (Third Edition)</I></A>, Bjarne Stroustrup, Addison-Wesley, 1997, ISBN 0-201-88954-4.<SCRIPT>create_link(11);</SCRIPT>

</DL>
<A NAME="571"> </A>
<P><A NAME="dingp12"></A>
Stroustrup has been intimately involved in the language's design, implementation, application, and standardization since its inception, and he probably knows more about it than anybody else does. His descriptions of language features make for dense reading, but that's primarily because they contain so much information. The chapters on the standard C++ library provide a good introduction to this crucial aspect of modern <NOBR>C++.<SCRIPT>create_link(12);</SCRIPT>

</NOBR></P><A NAME="769"> </A>
<P><A NAME="dingp13"></A>
If you're ready to move beyond the language itself and are interested in how to apply it effectively, you might consider my other book on the <NOBR>subject:<SCRIPT>create_link(13);</SCRIPT>

</NOBR></p><A NAME="568"> </A><DL><A NAME="dingp14"></A><DD><NOBR><FONT COLOR="#FF0000" SIZE="-2"><B>&deg;</B></FONT><A HREF="http://www.awl.com/cseng/cgi-bin/cdquery.pl?name=booke" onMouseOver = "self.status = 'Addison Wesley Web Site for Effective C++'; return true" onMouseOut = "self.status = self.defaultStatus" target="_top"><I>Effective</NOBR> C++, Second Edition: 50 Specific Ways to Improve Your Programs and Designs</I></A>, Scott Meyers, Addison-Wesley, 1998, ISBN 0-201-92488-9.<SCRIPT>create_link(14);</SCRIPT>

</DL>
<A NAME="770"> </A>
<P><A NAME="dingp15"></A>
That book is organized similarly to this one, but it covers different (arguably more fundamental) <NOBR>material.<SCRIPT>create_link(15);</SCRIPT>

</NOBR></P><A NAME="799"></A>
<P><A NAME="dingp16"></A>
A book pitched at roughly the same level as my <I>Effective C++</I> books, but covering different topics, <NOBR>is<SCRIPT>create_link(16);</SCRIPT>

</NOBR></p><A NAME="796"></A>
<DL><A NAME="dingp17"></A><DD><NOBR><FONT COLOR="#FF0000" SIZE="-2"><B>&deg;</B></FONT><A HREF="http://www.awl.com/cseng/cgi-bin/cdquery.pl?name=cstrtac" onMouseOver = "self.status = 'C++ Strategies and Tactics Home Page'; return true" onMouseOut = "self.status = self.defaultStatus" target="_top"><I>C++</NOBR> Strategies and Tactics</I></A>, Robert Murray, Addison-Wesley, 1993, ISBN 0-201-56382-7.<SCRIPT>create_link(17);</SCRIPT>

</DL>
<A NAME="794"></A>
<P><A NAME="dingp18"></A>
Murray's book is especially strong on the fundamentals of template design, a topic to which he devotes two chapters. He also includes a chapter on the important topic of migrating from C development to C++ development. Much of my discussion on reference counting (see <A HREF="./MC5_FR.HTM#6073" TARGET="_top">Item 29</A>) is based on the ideas in <I>C++ Strategies and Tactics.</I><SCRIPT>create_link(18);</SCRIPT>

</P><A NAME="777"></A>
<P><A NAME="dingp19"></A>
If you're the kind of person who likes to learn proper programming technique by reading <I>code</I>, the book for you <NOBR>is<SCRIPT>create_link(19);</SCRIPT>

</NOBR></p><A NAME="484"></A>
<DL><A NAME="dingp20"></A><DD><NOBR><FONT COLOR="#FF0000" SIZE="-2"><B>&deg;</B></FONT><A NAME="p287"></A><A HREF="http://www.awl.com/cseng/cgi-bin/cdquery.pl?name=cps" onMouseOver = "self.status = 'C++ Programming Style Home Page'; return true" onMouseOut = "self.status = self.defaultStatus" target="_top"><I>C++</NOBR> Programming Style</I></A>, Tom Cargill, Addison-Wesley, 1992, ISBN 0-201-56365-7.<SCRIPT>create_link(20);</SCRIPT>

</DL>
<A NAME="1817"></A>
<P><A NAME="dingp21"></A>
Each chapter in this book starts with some C++ software that has been published as an example of how to do something correctly. Cargill then proceeds to dissect &#151; nay, <I>vivisect</I> &#151; each program, identifying likely trouble spots, poor design choices, brittle implementation decisions, and things that are just plain wrong. He then iteratively rewrites each example to eliminate the weaknesses, and by the time he's done, he's produced code that is more robust, more maintainable, more efficient, and more portable, and it still fulfills the original problem specification. Anybody programming in C++ would do well to heed the lessons of this book, but it is especially important for those involved in code <NOBR>inspections.<SCRIPT>create_link(21);</SCRIPT>

</NOBR></p>
<A NAME="1625"></A>
<P><A NAME="dingp22"></A>
One topic Cargill does not discuss in <I>C++ Programming Style</I> is exceptions. He turns his critical eye to this language feature in the following article, however, which demonstrates why writing exception-safe code is more difficult than most programmers <NOBR>realize:<SCRIPT>create_link(22);</SCRIPT>

</NOBR></p><A NAME="1638"></A>
<DL><A NAME="dingp23"></A><DD><A HREF="../MAGAZINE/CA_FRAME.HTM" TARGET="_top">"Exception Handling: A False Sense of Security,"</A> <NOBR><FONT COLOR="#FF0000" SIZE="-2"><B>&deg;</B></FONT><A HREF="http://www.awl.com/cseng/cgi-bin/cdquery.pl?name=cppreport" onMouseOver = "self.status = 'C++ Report Home Page'; return true" onMouseOut = "self.status = self.defaultStatus" target="_top"><I>C++</NOBR> Report</I></A>, Volume 6, Number 9, November-December 1994, pages 21-24.<SCRIPT>create_link(23);</SCRIPT>

</DL>
<A NAME="1691"></A>

⌨️ 快捷键说明

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