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

📄 mcrcread.htm

📁 一个非常适合初学者入门的有关c++的文档
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<P><A NAME="dingp24"></A>
If you are contemplating the use of exceptions, read this article before you <NOBR>proceed.<SCRIPT>create_link(24);</SCRIPT>

</NOBR></P><A NAME="788"></A>
<P><A NAME="dingp25"></A>
Once you've mastered the basics of C++ and are ready to start pushing the envelope, you must familiarize yourself <NOBR>with<SCRIPT>create_link(25);</SCRIPT>

</NOBR></p><A NAME="486"></A>
<DL><A NAME="dingp26"></A><DD><NOBR><FONT COLOR="#FF0000" SIZE="-2"><B>&deg;</B></FONT><A HREF="http://www.awl.com/cseng/cgi-bin/cdquery.pl?name=apsi" onMouseOver = "self.status = 'Advanced C++: Programming Styles and Idioms Home Page'; return true" onMouseOut = "self.status = self.defaultStatus" target="_top"><I>Advanced</NOBR> C++: Programming Styles and Idioms</I></A>, James Coplien, Addison-Wesley, 1992, ISBN 0-201-54855-0.<SCRIPT>create_link(26);</SCRIPT>

</DL>
<A NAME="813"></A>
<P><A NAME="dingp27"></A>
I generally refer to this as "the LSD book," because it's purple and it will expand your mind. Coplien covers some straightforward material, but his focus is really on showing you how to do things in C++ you're not supposed to be able to do. You want to construct objects on top of one another? He shows you how. You want to bypass strong typing? He gives you a way. You want to add data and functions to classes as your programs are running? He explains how to do it. Most of the time, you'll want to steer clear of the techniques he describes, but sometimes they provide just the solution you need for a tricky problem you're facing. Furthermore, it's illuminating just to see what <A NAME="p288"></A>kinds of things can be done with C++. This book may frighten you, it may dazzle you, but when you've read it, you'll never look at C++ the same way <NOBR>again.<SCRIPT>create_link(27);</SCRIPT>

</NOBR></P><A NAME="821"></A>
<P><A NAME="dingp28"></A>
If you have anything to do with the design and implementation of C++ libraries, you would be foolhardy to <NOBR>overlook<SCRIPT>create_link(28);</SCRIPT>

</NOBR></p><A NAME="572"></A>
<DL><A NAME="dingp29"></A><DD><NOBR><FONT COLOR="#FF0000" SIZE="-2"><B>&deg;</B></FONT><A HREF="http://www.awl.com/cseng/cgi-bin/cdquery.pl?name=dcr" onMouseOver = "self.status = 'Designing and Coding Reusable C++ Home Page'; return true" onMouseOut = "self.status = self.defaultStatus" target="_top"><I>Designing</NOBR> and Coding Reusable
C++</I></A>, Martin D. Carroll and Margaret A. Ellis, Addison-Wesley, 1995, ISBN 0-201-51284-X.<SCRIPT>create_link(29);</SCRIPT>

</DL>
<A NAME="825"></A>
<P><A NAME="dingp30"></A>
Carroll and Ellis discuss many practical aspects of library design and implementation that are simply ignored by everybody else. Good libraries are small, fast, extensible, easily upgraded, graceful during template instantiation, powerful, and robust. It is not possible to optimize for each of these attributes, so one must make trade-offs that improve some aspects of a library at the expense of others. <I>Designing and Coding Reusable C++</I> examines these trade-offs and offers down-to-earth advice on how to go about making <NOBR>them.<SCRIPT>create_link(30);</SCRIPT>

</NOBR></P><A NAME="836"></A>
<P><A NAME="dingp31"></A>
Regardless of whether you write software for scientific and engineering applications, you owe yourself a look <NOBR>at<SCRIPT>create_link(31);</SCRIPT>

</NOBR></p><A NAME="573"></A>
<DL><A NAME="dingp32"></A><DD><NOBR><FONT COLOR="#FF0000" SIZE="-2"><B>&deg;</B></FONT><A HREF="http://www.awl.com/cseng/cgi-bin/cdquery.pl?name=sec" onMouseOver = "self.status = 'Scientific and Engineering C++ Home Page'; return true" onMouseOut = "self.status = self.defaultStatus" target="_top"><I>Scientific</NOBR> and Engineering C++</I></A>, John J. Barton and Lee R. Nackman, Addison-Wesley, 1994, ISBN 0-201-53393-6.<SCRIPT>create_link(32);</SCRIPT>

</DL>
<A NAME="837"></A>
<P><A NAME="dingp33"></A>
The first part of the book explains C++ for FORTRAN programmers (now <I>there's</I> an unenviable task), but the latter parts cover techniques that are relevant in virtually any domain. The extensive material on templates is close to revolutionary; it's probably the most advanced that's currently available, and I suspect that when you've seen the miracles these authors perform with templates, you'll never again think of them as little more than souped-up <NOBR>macros.<SCRIPT>create_link(33);</SCRIPT>

</NOBR></P><A NAME="856"></A>
<P><A NAME="dingp34"></A>
Finally, the emerging discipline of <I>patterns</I> in object-oriented software development (see <A HREF="./MC4_FR.HTM#26353" TARGET="_top">page 123</A>) is described <NOBR>in<SCRIPT>create_link(34);</SCRIPT>

</NOBR></p><A NAME="619"></A>
<DL><A NAME="dingp35"></A><DD><NOBR><FONT COLOR="#FF0000" SIZE="-2"><B>&deg;</B></FONT><A HREF="http://www.awl.com/cseng/cgi-bin/cdquery.pl?name=dpop" onMouseOver = "self.status = 'Design Patterns: Elements of Reusable Object-Oriented Software'; return true" onMouseOut = "self.status = self.defaultStatus" target="_top"><I>Design</NOBR> Patterns: Elements of Reusable Object-Oriented Software</I></A>, Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Addison-Wesley, 1995, ISBN 0-201-63361-2.<SCRIPT>create_link(35);</SCRIPT>

</DL>
<A NAME="860"></A>
<P><A NAME="dingp36"></A>
This book provides an overview of the ideas behind patterns, but its primary contribution is a catalogue of 23 fundamental patterns that are useful in many application areas. A stroll through these pages will almost surely reveal a pattern you've had to invent yourself at one time or another, and when you find one, you're almost certain to discover that the design in the book is superior to the ad-hoc approach you came up with. The names of the patterns here have already become part of an emerging vocabulary for object-oriented design; failure to know these names may soon be hazardous to your ability to <A NAME="p289"></A>communicate with your colleagues. A particular strength of the book is its emphasis on designing and implementing software so that future evolution is gracefully accommodated (see Items <A HREF="./MC6_FR.HTM#5373" TARGET="_top">32</A> and <A HREF="./MC6_FR.HTM#10947" TARGET="_top">33</A>).<SCRIPT>create_link(36);</SCRIPT>

</P><A NAME="2316"></A>
<P><A NAME="dingp37"></A>
<I>Design Patterns</I> is also available as a <NOBR>CD-ROM:<SCRIPT>create_link(37);</SCRIPT>

</NOBR></P>
<A NAME="2318"></A><DL><A NAME="dingp38"></A><DD><NOBR><FONT COLOR="#FF0000" SIZE="-2"><B>&deg;</B></FONT><A HREF="http://www.awl.com/cseng/cgi-bin/cdquery.pl?name=dpopcd" onMouseOver = "self.status = 'Design Patterns CD Web Site'; return true" onMouseOut = "self.status = self.defaultStatus" target="_top"><I>Design</NOBR> Patterns CD: Elements of Reusable Object-Oriented Software</I></A>, Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Addison-Wesley, 1998, ISBN 0-201-63498-8.<SCRIPT>create_link(38);</SCRIPT>

</DL>

<P><A NAME="dingp39"></A><font ID="mhtitle">Magazines</font><SCRIPT>create_link(39);</SCRIPT>

</P>

<A NAME="2321"></A>
<P><A NAME="dingp40"></A>
For hard-core C++ programmers, there's really only one game in <NOBR>town:<SCRIPT>create_link(40);</SCRIPT>

</NOBR></p><A NAME="550"> </A><DL><A NAME="dingp41"></A><DD><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>, SIGS Publications, New York, NY.<SCRIPT>create_link(41);</SCRIPT>

</DL>
<A NAME="1578"></A>
<P><A NAME="dingp42"></A>
The magazine has made a conscious decision to move away from its "C++ only" roots, but the increased coverage of domain- and system-specific programming issues is worthwhile in its own right, and the material on C++, if occasionally a bit off the deep end, continues to be the best <NOBR>available.<SCRIPT>create_link(42);</SCRIPT>

</NOBR></P><A NAME="1066"></A>
<P><A NAME="dingp43"></A>
If you're more comfortable with C than with C++, or if you find the <I>C++ Report's</I> material too extreme to be useful, you may find the articles in this magazine more to your <NOBR>taste:<SCRIPT>create_link(43);</SCRIPT>

</NOBR></p><A NAME="1074"></A><DL><A NAME="dingp44"></A><DD><NOBR><FONT COLOR="#FF0000" SIZE="-2"><B>&deg;</B></FONT><A HREF="http://www.awl.com/cseng/cgi-bin/cdquery.pl?name=cuj" onMouseOver = "self.status = 'C/C++ Users Journal Home Page'; return true" onMouseOut = "self.status = self.defaultStatus" target="_top"><I>C/C++</NOBR> Users Journal</I></A>, Miller Freeman, Inc., Lawrence, KS.<SCRIPT>create_link(44);</SCRIPT>

</DL>
<A NAME="1075"></A>
<P><A NAME="dingp45"></A>
As the name suggests, this covers both C and C++. The articles on C++ tend to assume a weaker background than those in the <I>C++ Report</I>. In addition, the editorial staff keeps a tighter rein on its authors than does the <I>Report</I>, so the material in the magazine tends to be relatively mainstream. This helps filter out ideas on the lunatic fringe, but it also limits your exposure to techniques that are truly <NOBR>cutting-edge.<SCRIPT>create_link(45);</SCRIPT>

</NOBR></p>

<P><A NAME="dingp46"></A><font ID="mhtitle">Usenet Newsgroups</font><SCRIPT>create_link(46);</SCRIPT>

</P>

<A NAME="545"></A>
<P><A NAME="dingp47"></A>
Three Usenet newsgroups are devoted to C++. The general-purpose anything-goes newsgroup is <FONT COLOR="#FF0000"SIZE="-2"><NOBR><B>&deg;</B></FONT><A HREF="http://www.awl.com/cseng/cgi-bin/cdquery.pl?name=clcfaq" ONMOUSEOVER ="self.status ='comp.lang.c++ Newsgroup'; return true" ONMOUSEOUT="self.status=self.defaultStatus" TARGET="_top"><CODE>comp.lang.c++</CODE></NOBR></a>
. The postings there run the gamut from detailed explanations of advanced programming techniques to rants and raves by those who love or hate C++ to undergraduates the world over asking for help with the homework assignments they neglected until too late. Volume in the newsgroup is extremely high. Unless you have hours of free time on your hands, you'll want to employ a filter to help separate the wheat from the chaff. Get a good filter &#151; there's a lot of <NOBR>chaff.<SCRIPT>create_link(47);</SCRIPT>

</NOBR></P><A NAME="2090"></A>
<P><A NAME="dingp48"></A>
In November 1995, a moderated version of <CODE>comp.lang.c++</CODE> was created. Named <FONT COLOR="#FF0000"SIZE="-2"><NOBR><B>&deg;</B></FONT><A HREF="http://www.awl.com/cseng/cgi-bin/cdquery.pl?name=clcfaq" ONMOUSEOVER ="self.status ='comp.lang.c++.moderated Newsgroup'; return true" ONMOUSEOUT="self.status=self.defaultStatus" TARGET="_top"><CODE>comp.lang.c++.moderated</CODE></NOBR></a>, this newsgroup is also designed for general discussion of C++ and related issues, but the moderators aim to weed out implementation-specific questions and <A NAME="p290"></A>comments, questions covered in the extensive <NOBR><FONT COLOR="#FF0000" SIZE="-2"><B>&deg;</B></FONT><A HREF="http://www.awl.com/cseng/cgi-bin/cdquery.pl?name=clcfaq" onMouseOver = "self.status = 'The comp.lang.c++.moderated On-line FAQ Home Page'; return true" onMouseOut = "self.status = self.defaultStatus" target="_top">on-line</NOBR> FAQ</A> ("Frequently Asked Questions" list), flame wars, and other matters of little interest to most C++ <NOBR>practitioners.<SCRIPT>create_link(48);</SCRIPT>

</NOBR></P><A NAME="1081"></A>
<P><A NAME="dingp49"></A>
A more narrowly focused newsgroup is <FONT COLOR="#FF0000"SIZE="-2"><NOBR><B>&deg;</B></FONT><A HREF="http://www.awl.com/cseng/cgi-bin/cdquery.pl?name=compstdc" ONMOUSEOVER ="self.status ='comp.std.c++ Newsgroup'; return true" ONMOUSEOUT="self.status=self.defaultStatus" TARGET="_top"><CODE>comp.std.c++</CODE></A></NOBR>, which is devoted to a discussion of <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">the</NOBR> C++ standard</A>  itself. Language lawyers abound in this group, but it's a good place to turn if your picky questions about C++ go unanswered in the references otherwise available to you. The newsgroup is moderated, so the signal-to-noise ratio is quite good; you won't see any pleas for homework assistance <NOBR>here.<SCRIPT>create_link(49);</SCRIPT>

</NOBR></p>

<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>

</BODY>
</HTML>

⌨️ 快捷键说明

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