home *** CD-ROM | disk | FTP | other *** search
/ ftp.pasteur.org/FAQ/ / ftp-pasteur-org-FAQ.zip / FAQ / C++-faq / part2 < prev    next >
Text File  |  2000-03-01  |  48KB  |  1,045 lines

  1. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!news-out.cwix.com!newsfeed.cwix.com!newsfeed.skycache.com!news.maxwell.syr.edu!newsfeed.novia.net.MISMATCH!novia!nntp3.cerf.net!nntp2.cerf.net!news.cerf.net!not-for-mail
  2. From: mpcline@nic.cerf.net (Marshall Cline)
  3. Newsgroups: comp.lang.c++,comp.answers,news.answers,alt.comp.lang.learn.c-c++
  4. Subject: C++ FAQ (part 2 of 10)
  5. Followup-To: comp.lang.c++
  6. Date: 29 Feb 2000 20:06:27 GMT
  7. Organization: ATT Cerfnet
  8. Lines: 1024
  9. Approved: news-answers-request@mit.edu
  10. Distribution: world
  11. Expires: +1 month
  12. Message-ID: <89h8s3$btp$1@news.cerf.net>
  13. Reply-To: cline@parashift.com (Marshall Cline)
  14. NNTP-Posting-Host: nic1.san.cerf.net
  15. X-Trace: news.cerf.net 951854787 12217 192.215.81.88 (29 Feb 2000 20:06:27 GMT)
  16. X-Complaints-To: abuse@cerf.net
  17. NNTP-Posting-Date: 29 Feb 2000 20:06:27 GMT
  18. Summary: Please read this before posting to comp.lang.c++
  19. Xref: senator-bedfellow.mit.edu comp.lang.c++:453817 comp.answers:39857 news.answers:178216 alt.comp.lang.learn.c-c++:40795
  20.  
  21. Archive-name: C++-faq/part2
  22. Posting-Frequency: monthly
  23. Last-modified: Feb 29, 2000
  24. URL: http://marshall-cline.home.att.net/cpp-faq-lite/
  25.  
  26. AUTHOR: Marshall Cline / cline@parashift.com / 972-931-9470
  27.  
  28. COPYRIGHT: This posting is part of "C++ FAQ Lite."  The entire "C++ FAQ Lite"
  29. document is Copyright(C)1991-2000 Marshall Cline, Ph.D., cline@parashift.com.
  30. All rights reserved.  Copying is permitted only under designated situations.
  31. For details, see section [1].
  32.  
  33. NO WARRANTY: THIS WORK IS PROVIDED ON AN "AS IS" BASIS.  THE AUTHOR PROVIDES NO
  34. WARRANTY WHATSOEVER, EITHER EXPRESS OR IMPLIED, REGARDING THE WORK, INCLUDING
  35. WARRANTIES WITH RESPECT TO ITS MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
  36. PURPOSE.
  37.  
  38. C++-FAQ-Lite != C++-FAQ-Book: This document, C++ FAQ Lite, is not the same as
  39. the C++ FAQ Book.  The book (C++ FAQs, Cline and Lomow, Addison-Wesley) is 500%
  40. larger than this document, and is available in bookstores.  For details, see
  41. section [3].
  42.  
  43. ==============================================================================
  44.  
  45. SECTION [4]: Recent changes to this document
  46.  
  47.  
  48. [4.1] What updates were made for the 03/00 release? [NEW!]
  49.  
  50. [Recently created (on 3/00).]
  51.  
  52. New FAQs:
  53.  * [4.1] What updates were made for the 03/00 release?
  54.  * [34.1] What should be done with macros that contain if?
  55.  * [34.2] What should be done with macros that have multiple lines?
  56.  * [34.3] What should be done with macros that need to paste two tokens
  57.    together?
  58.  
  59. Changed FAQs:
  60.  * [2.6] Where can I download a Portuguese translation of this on-line
  61.    document?
  62.    (updated the URL for the Portuguese translation of the FAQ thanks to Ricardo
  63. F. de Oliveira)
  64.  * [3.1] Is there a C++ FAQ Book in addition to the C++ FAQ Lite?
  65.    (rewrote)
  66.  * [3.2] Is there a big difference between C++ FAQ Lite and C++ FAQ Book?
  67.    (rewrote)
  68.  * [3.3] How can I download an electronic copy of the C++ FAQ Book?
  69.    (rewrote)
  70.  * [6.12] Where can I get a copy of the ANSI/ISO C++ standard?
  71.    (changed the URL for the electronic copy of the Standard thanks to Wolfgang
  72. Haefelinger)
  73.  * [9.3] Why should I use inline functions? Why not just use plain old #define
  74.    macros?
  75.    (added cross references to other evilness of macros)
  76.  * [11.8] What if I can't wrap the local in an artificial block?
  77.    (added the note about constructors at the end)
  78.  * [13.10] Should I design my classes from the outside (interfaces first) or
  79.    from the inside (data first)?
  80.    (added friend relationship between LinkedListIterator and LinkedList thanks
  81. to M≤nica Garcφa Garcφa; reworded "In the case of OO software..." sentence
  82. thanks to Fabrice Clerc)
  83.  * [18.10] What do I do if I want to update an "invisible" data member inside a
  84.    const member function?
  85.    (added a warning against use of const_cast on const objects thanks to TiTi)
  86.  * [20.5] What is a "virtual constructor"?
  87.    (added the paragraph on Covariant Return Types)
  88.  * [27.3] Which is a better fit for C++: "static typing" or "dynamic typing"?
  89.    (added cross references to evilness of macros)
  90.  * [29.4] How can I modify my own C header files so it's easier to #include
  91.    them in C++ code?
  92.    (added the "macros are sometimes useful" paragraph at the end)
  93.  * [30.1] Is the type of "pointer-to-member-function" different from
  94.    "pointer-to-function"?
  95.    (changed another "It's" to "Its" thanks to Chris Young)
  96.  * [30.5] How can I avoid syntax errors when calling a member function using a
  97.    pointer-to-member-function?
  98.    (added the "macros are sometimes useful" paragraph at the end)
  99.  * [30.6] How do I create and use an array of pointers to member functions?
  100.    (added the "macros are sometimes useful" paragraph at the end)
  101.  
  102. ==============================================================================
  103.  
  104. [4.2] What updates were made for the 01/00 release? [NEW!]
  105.  
  106. [Recently created (on 1/00).]
  107.  
  108. New FAQs:
  109.  * [4.2] What updates were made for the 01/00 release?
  110.  * [10.7] Should you use the this pointer in the constructor?
  111.    (with the help of Jim Hyslop)
  112.  * [25.4] What's the difference between <xxx> and <xxx.h> headers?
  113.    (thanks to Stan Brown)
  114.  
  115. Changed FAQs:
  116.  * [2.1] Where's the closest mirror site to access this document?
  117.    (changed the rationale for choosing a close site thanks to Stan Brown)
  118.  * [2.4] Why is the download via email? Why not via ftp?
  119.    (added caveat that out-of-date reminders aren't implemented yet thanks to
  120. Stan Brown)
  121.  * [5.1] What does IMHO mean? (or IMO, IMNSHO, FWIW, OTOH, etc.)?
  122.    (added IMAO thanks to Charles R Martin)
  123.  * [5.9] How do I get the FAQs for a particular newsgroup?
  124.    (added www.faqs.org thanks to Dan Kegel)
  125.  * [6.8] Are virtual functions (dynamic binding) central to OO/C++?
  126.    (reworded the second paragraph thanks to Stan Brown)
  127.  * [6.11] Is C++ standardized?
  128.    (changed "American National Standards Organization" to "American National
  129. Standards Institute" thanks to Mark Jones; also reworded first paragraph thanks
  130. to Stan Brown)
  131.  * [12.1] What is "self assignment"?
  132.    (changed "knowning" to "knowing" thanks to Stan Brown)
  133.  * [12.3] OK, OK, already; I'll handle self-assignment.  How do I do it?
  134.    (reworded the last paragraph thanks to Stan Brown)
  135.  * [13.5] What operators can/cannot be overloaded?
  136.    (got rid of #if/#else/#endif by splitting the example thanks to Stan Brown)
  137.  * [15.10] Why can't I open a file in a different directory such as
  138.    "..\test.dat"?
  139.    (added an explanation that the library routines treat "/" and "\"
  140. interchangeably thanks to Stan Brown)
  141.  * [18.13] Does "const Fred* p" mean that *p can't change?
  142.    (added an indication that there might be other non-const ways to get at the
  143. object thanks to Stan Brown)
  144.  * [20.2] How can C++ achieve dynamic binding yet also static typing?
  145.    (added the definition of polymorphism thanks to Kemberli Jennings)
  146.  * [22.5] How do you define a copy constructor or assignment operator for a
  147.    class that contains a pointer to a (abstract) base class?
  148.    (fixed Circle and Square so they inherit from Shape thanks to Paul Campbell)
  149.  * [30.1] Is the type of "pointer-to-member-function" different from
  150.    "pointer-to-function"?
  151.    (changed "It's type is..." to "Its type is..." thanks to Graham Borland)
  152.  * [31.3] How can I insert/access/change elements from a linked
  153.    list/hashtable/etc?
  154.    (reworded first 4 paragraphs thanks to Stan Brown)
  155.  * [33.2] Where can I get more information on using MFC and Visual C++?
  156.    (updated the URL thanks to Katy Mulvey; changed the maintainer's name thanks
  157. to AllanW)
  158.  * [33.5] Where can I get information about the C++ compiler from {Borland,
  159.    IBM, Microsoft, Semantic, Sun, etc.}?
  160.    (changed the URL for Watcom C++ thanks to Stephen Howe; added Comeau C++
  161. thanks to Gary Comeau)
  162.  
  163. ==============================================================================
  164.  
  165. [4.3] What updates were made for the 10/99 release?
  166.  
  167. New FAQs:
  168.  * [2.7] Where can I download a French translation of this on-line document?
  169.  * [4.3] What updates were made for the 10/99 release?
  170.  * [13.9] Why shouldn't my Matrix class's interface look like an
  171.    array-of-array?
  172.  * [32.1] What is the "STL"?
  173.  * [34.9] How can I create two classes that both know about each other?
  174.    (thanks to Steve Horne)
  175.  * [34.10] What special considerations are needed when forward declarations are
  176.    used with member objects?
  177.    (thanks to Steve Horne)
  178.  * [34.11] What special considerations are needed when forward declarations are
  179.    used with inline functions?
  180.    (thanks to Steve Horne)
  181.  * [34.12] Why can't I put a forward-declared class in a vector<>?
  182.    (thanks to Steve Horne)
  183.  
  184. Changed FAQs:
  185.  * [6.11] Is C++ standardized?
  186.    (changed "International Standards Organization" to "International
  187. Organization for Standardization" thanks to savvysoft2@aol.com)
  188.  * [7.1] What is a class?
  189.    (cleaned up wording so no one thinks int is a class thanks to Ron Natalie)
  190.  * [8.1] What is a reference?
  191.    (added return type to main())
  192.  * [8.2] What happens if you assign to a reference?
  193.    (inserted "state of the" to avoid ambiguity thanks to Donna)
  194.  * [8.3] What happens if you return a reference?
  195.    (added return type to main())
  196.  * [10.5] Which constructor gets called when I create an array of Fred objects?
  197.    (added return type to main(), plus added stuff about "explicit
  198. initialization of arrays" thanks to Keller Beyer)
  199.  * [10.8] What is the "Named Constructor Idiom"?
  200.    (added return type to main())
  201.  * [12.1] What is "self assignment"?
  202.    (added return type to main())
  203.  * [13.4] But operator overloading makes my class look ugly; isn't it supposed
  204.    to make my code clearer?
  205.    (added return type to main())
  206.  * [13.5] What operators can/cannot be overloaded?
  207.    (added return type to main())
  208.  * [13.6] Can I overload operator== so it lets me compare two char[] using a
  209.    string comparison?
  210.    (replaced "class type" with "user-defined type" in first paragraph thanks to
  211. Daryle Walker)
  212.  * [13.8] How do I create a subscript operator for a Matrix class?
  213.    (added return type to main(); added parameters to the instantiation of m in
  214. main() thanks to Boris Pulatov)
  215.  * [13.10] Should I design my classes from the outside (interfaces first) or
  216.    from the inside (data first)?
  217.    (added an admonition to not "roll your own" container classes)
  218.  * [15.2] Why does my program go into an infinite loop when someone enters an
  219.    invalid input character?
  220.    (added return type to main())
  221.  * [15.4] Why does my input seem to process past the end of file?
  222.    (strengthened the message with another example)
  223.  * [15.6] How can I provide printing for my class Fred?
  224.    (added return type to main())
  225.  * [15.7] How can I provide input for my class Fred?
  226.    (added return type to main())
  227.  * [15.10] Why can't I open a file in a different directory such as
  228.    "..\test.dat"?
  229.    (added return type to main())
  230.  * [16.6] How can I convince my (older) compiler to automatically check new to
  231.    see if it returns NULL?
  232.    (added return type to main())
  233.  * [16.19] How can I force objects of my class to always be created via new
  234.    rather than as locals or global/static objects?
  235.    (added return type to main())
  236.  * [18.12] Why does the compiler allow me to change an int after I've pointed
  237.    at it with a const int*?
  238.    (added return type to main())
  239.  * [18.13] Does "const Fred* p" mean that *p can't change?
  240.    (added return type to main())
  241.  * [21.2] Derived* --> Base* works OK; why doesn't Derived** --> Base** work?
  242.    (added return type to main(); added methods openGasCap() and
  243. fireNuclearMissle() -- makes the example more exciting)
  244.  * [21.4] Is an array of Derived a kind-of array of Base?
  245.    (added return type to main())
  246.  * [24.4] Should I pointer-cast from a private derived class to its base class?
  247.    (changed PrivateDer to PrivatelyDer in last paragraph)
  248.  * [24.6] What are the access rules with private and protected inheritance?
  249.    (rewritten with the using syntax; thanks to Stephen Vance)
  250.  * [29.2] How can I include a standard C header file in my C++ code?
  251.    (added return type to main())
  252.  * [29.3] How can I include a non-system C header file in my C++ code?
  253.    (added return type to main())
  254.  * [29.4] How can I modify my own C header files so it's easier to #include
  255.    them in C++ code?
  256.    (added return type to main())
  257.  * [29.5] How can I call a non-system C function f(int,char,float) from my C++
  258.    code?
  259.    (added return type to main())
  260.  * [30.2] How do I pass a pointer to member function to a signal handler, X
  261.    event callback, etc?
  262.    (added return type to main())
  263.  * [31.1] How can I make a perl-like associative array in C++?
  264.    (added return type to main())
  265.  * [31.5] What's the syntax / semantics for a "function template"?
  266.    (added return type to main())
  267.  * [31.6] What's the syntax / semantics for a "class template"?
  268.    (added return type to main())
  269.  * [33.1] Where can I download a free C++ compiler?
  270.    (fixed the URL)
  271.  * [33.5] Where can I get information about the C++ compiler from {Borland,
  272.    IBM, Microsoft, Semantic, Sun, etc.}?
  273.    (added Edison Design Group C++ thanks to Matt Page)
  274.  * [34.8] Why is floating point so inaccurate? Why doesn't this print 0.43?
  275.    (added return type to main())
  276.  * [35.2] Are there any pretty-printers that reformat C++ source code?
  277.    (added Artistic Style thanks to Philipp Berndt, fixed the URL for C++2LaTeX
  278. thanks to Vinay Kumar Nallamothu, fixed the URL for C-Clearly thanks to Bill
  279. Robertson; fixed the plaintext version (the "grind" definition didn't show up
  280. there) thanks to Nimrod Zimerman)
  281.  
  282. ==============================================================================
  283.  
  284. [4.4] What updates were made for the 07/99 release?
  285.  
  286. New FAQs:
  287.  * [4.4] What updates were made for the 07/99 release?
  288.  * [33.1] Where can I download a free C++ compiler?
  289.  
  290. Changed FAQs:
  291.  * [1.6] C++-FAQ-Lite != C++-FAQ-Book
  292.    (updated due to the Second Edition of the book)
  293.  * [2.1] Where's the closest mirror site to access this document?
  294.    (added Ireland mirror site: snet.wit.ie/GreenSpirit/c++-faq-lite)
  295.  * [2.2] How can I get a Copy of all the HTML files of C++ FAQ Lite so I can
  296.    read them Off-Line?
  297.    (added "Windows 98" to last paragraph)
  298.  * [3.1] Is there a C++ FAQ Book in addition to the C++ FAQ Lite?
  299.    (updated due to the Second Edition of the book)
  300.  * [3.3] How can I download an electronic copy of the C++ FAQ Book?
  301.    (fixed URL of book at Addison-Wesley, added amazon.com URL)
  302.  * [6.5] Who uses C++?
  303.    (corrected the growth rate)
  304.  * [6.8] Are virtual functions (dynamic binding) central to OO/C++?
  305.    (added STL and generic programming)
  306.  * [6.12] Where can I get a copy of the ANSI/ISO C++ standard?
  307.    (added new ways to get a copy via the web)
  308.  * [12.3] OK, OK, already; I'll handle self-assignment.  How do I do it?
  309.    (tightened the wording of the last paragraph thanks to Andy Glew)
  310.  * [15.3] How does that funky while (cin >> foo) syntax work?
  311.    (corrected a serious bug: changed operator bool() to operator void*();
  312. thanks to Rajinikanth Sivalingam)
  313.  * [16.22] How do I provide reference counting with copy-on-write semantics for
  314.    a hierarchy of classes?
  315.    (fixed a bug by making Fred a friend of Fred::Data)
  316.  * [18.9] What is a "const member function"?
  317.    (changed "const pointer" to "pointer-to-const" thanks to Saieb Khalil)
  318.  * [20.4] When should my destructor be virtual?
  319.    (changed "explicit destructor" to "explicitly defined destructor" to avoid
  320. confusion with the explicit keyword used with constructors)
  321.  * [23.2] Should a derived class replace ("override") a non-virtual function
  322.    from a base class?
  323.    (reworded first full paragraph)
  324.  * [25.11] Are there any other sources of coding standards?
  325.    (removed the URL for the anti-guide (thanks to Bill Seymour for letting me
  326. know that the anti-guide disappeared))
  327.  * [26.5] What are some best-of-breed C++ morality guides?
  328.    (updated info on C++ FAQs book because of its Second Edition)
  329.  * [26.6] What are some best-of-breed C++ legality guides?
  330.    (fixed the ISBN for Bjarne Stroustrup's book)
  331.  * [28.1] What is value and/or reference semantics, and which is best in C++?
  332.    (wordsmithing changes thanks to Lance Ware)
  333.  * [31.3] How can I insert/access/change elements from a linked
  334.    list/hashtable/etc?
  335.    (reworded item #3 thanks to John Millaway)
  336.  * [32.3] How can I find a Fred object in an STL container of Fred* such as
  337.    vector<Fred*>?
  338.    (fixed a typo in the code thanks to Scott Maxwell and Bill Sloan)
  339.  * [33.4] How can I decompile an executable program back into C++ source code?
  340.    (wordsmithing changes thanks to Lance Ware)
  341.  * [33.5] Where can I get information about the C++ compiler from {Borland,
  342.    IBM, Microsoft, Semantic, Sun, etc.}?
  343.    (corrected the URL for KAI C++ and added Rational APEX C/C++ thanks to Kevin
  344. Broadey; corrected the URL for Borland C++ FAQ thanks to Kent Reisdorph
  345. <kentr@turbopower.com> and Michael J. Reeves <mreeves@ns.net>)
  346.  * [34.5] Does C++ have new scoping rules for for loops?
  347.    (wordsmithing changes thanks to Lance Ware)
  348.  
  349. ==============================================================================
  350.  
  351. [4.5] What updates were made for the 06/98 release?
  352.  
  353. New FAQs:
  354.  * [4.5] What updates were made for the 06/98 release?
  355.  * [10.14] How can I handle a constructor that fails?
  356.  
  357. Changed FAQs:
  358.  * [32.9] Where can I get tons and tons of more information on C++ class
  359.    libraries?
  360.    (fixed the URL)
  361.  
  362. ==============================================================================
  363.  
  364. [4.6] What updates were made for the 05/98 release?
  365.  
  366. Global changes:
  367.  * Removed the grey background color on the HTML version.  It now displays in
  368.    the Web Browser's own preferences.
  369.  
  370. New FAQs:
  371.  * [1.5] Trademarks
  372.  * [2.4] Why is the download via email? Why not via ftp?
  373.  * [2.6] Where can I download a Portuguese translation of this on-line
  374.    document?
  375.  * [4.6] What updates were made for the 05/98 release?
  376.  * [10.6] Should my constructors use "initialization lists" or "assignment"?
  377.  * [26.8] But those books are too advanced for me since I've never used any
  378.    programming language before; is there any hope for me?
  379.  * [33.2] Where can I get more information on using MFC and Visual C++?
  380.  
  381. Changed FAQs:
  382.  * [2.2] How can I get a Copy of all the HTML files of C++ FAQ Lite so I can
  383.    read them Off-Line?
  384.    (made it clearer why there is no FTP or HTTP address for downloading the
  385. FAQ)
  386.  * [2.3] How can I get a Copy of all the "plaintext" files of C++ FAQ Lite so I
  387.    can read them Off-Line?
  388.    (made it clearer why there is no FTP or HTTP address for downloading the
  389. FAQ)
  390.  * [6.11] Is C++ standardized?
  391.    (rewrote now that the standard is here)
  392.  * [6.12] Where can I get a copy of the ANSI/ISO C++ standard?
  393.    (rewrote now that the standard is here)
  394.  * [16.17] But the above Matrix class is specific to Fred! Isn't there a way to
  395.    make it generic?
  396.    (fixed Matrix's ctor thanks to Dhavide Aruliah)
  397.  * [16.21] How do I provide reference counting with copy-on-write semantics?
  398.    (fixed Fred's default ctor thanks to Scott Harris)
  399.  * [32.3] How can I find a Fred object in an STL container of Fred* such as
  400.    vector<Fred*>?
  401.    (changed operator==() to operator()() thanks to Ali Tajeldin)
  402.  * [32.4] Where can I get help on how to use STL?
  403.    (added the URL for the STL FAQ)
  404.  * [33.5] Where can I get information about the C++ compiler from {Borland,
  405.    IBM, Microsoft, Semantic, Sun, etc.}?
  406.    (corrected the URL for Borland C++ & HP C++; added GNU C++, Intel Reference
  407. C++, KAI C++, and Portland Group C++)
  408.  * [35.2] Are there any pretty-printers that reformat C++ source code?
  409.    (added a URL for "GNU indent")
  410.  
  411. ==============================================================================
  412.  
  413. [4.7] What updates were made for the 09/97 release?
  414.  
  415. New FAQs:
  416.  * [4.7] What updates were made for the 09/97 release?
  417.  * [10.11] What's the "static initialization order fiasco"?
  418.  * [10.12] How do I prevent the "static initialization order fiasco"?
  419.  * [10.13] How do I prevent the "static initialization order fiasco" for my
  420.    static data members?
  421.  * [16.17] But the above Matrix class is specific to Fred! Isn't there a way to
  422.    make it generic?
  423.  
  424. Changed FAQs:
  425.  * [1.3] Copying Permissions
  426.    (clarified)
  427.  * [5.1] What does IMHO mean? (or IMO, IMNSHO, FWIW, OTOH, etc.)?
  428.    (added silly acronym-laden comment at the bottom (adapted from e-mail from
  429. Erik Corry)
  430.  * [16.16] But the previous FAQ's code is SOOOO tricky and error prone! Isn't
  431.    there a simpler way?
  432.    (fixed some inconsistencies between FredMatrix and Matrix thanks to Jeff
  433. Baker)
  434.  * [16.20] How do I do simple reference counting?
  435.    (fixed FredPtr's constructor thanks to Chichiang Wan)
  436.  * [23.3] What's the meaning of, Warning: Derived::f(float) hides Base::f(int)?
  437.    (rewritten with the using syntax; thanks to Matt Seitz)
  438.  * [33.5] Where can I get information about the C++ compiler from {Borland,
  439.    IBM, Microsoft, Semantic, Sun, etc.}?
  440.    (corrected the URL for Symantec C++
  441. <http://www.symantec.com/scpp/index_product.html> thanks to Michel Joly de
  442. Lotbiniere and added the URL for HP C++ thanks to David Green)
  443.  * [33.5] Where can I get information about the C++ compiler from {Borland,
  444.    IBM, Microsoft, Semantic, Sun, etc.}?
  445.    (corrected the URL for Microsoft Visual C++ thanks to Leila Rannanjarvi, and
  446. added the URL for Sun C++ thanks to Aryan Mirsepassi)
  447.  * [35.2] Are there any pretty-printers that reformat C++ source code?
  448.    (added information about tgrind)
  449.  
  450. ==============================================================================
  451.  
  452. [4.8] What updates were made for the 01/97 release?
  453.  
  454. Global changes:
  455.  * Added the (much requested!) one-click download feature[2.2].  This
  456.    automagically sends you a copy of the entire FAQ so you can browse off-line.
  457.    There's a similar feature to get a copy of the "plaintext" version of the
  458.    FAQ[2.3].
  459.  * Removed those pesky "hit counters" from each HTML page.
  460.  * Added nifty forward and backward links just after each FAQ.
  461.  * Added more nifty navigation aids at the bottom of each page.
  462.  * Renamed section [6] from "Management Issues" to "Big Picture Issues."
  463.  
  464. New FAQs:
  465.  * [4.8] What updates were made for the 01/97 release?
  466.  * [15.2] Why does my program go into an infinite loop when someone enters an
  467.    invalid input character?
  468.  * [15.3] How does that funky while (cin >> foo) syntax work?
  469.  * [16.16] But the previous FAQ's code is SOOOO tricky and error prone! Isn't
  470.    there a simpler way?
  471.  * [25.5] Is the ?: operator evil since it can be used to create unreadable
  472.    code?
  473.  
  474. Changed FAQs:
  475.  * [1.3] Copying Permissions
  476.    (simplified)
  477.  * [2.1] Where's the closest mirror site to access this document?
  478.    (removed the "USA-2" site)
  479.  * [2.2] How can I get a Copy of all the HTML files of C++ FAQ Lite so I can
  480.    read them Off-Line?
  481.    (rewrote and added a one-click feature to get .zip, .tar.Z or .tar.gz
  482. format)
  483.  * [2.3] How can I get a Copy of all the "plaintext" files of C++ FAQ Lite so I
  484.    can read them Off-Line?
  485.    (rewrote and added a one-click feature to get .zip, .tar.Z or .tar.gz
  486. format)
  487.  * [5.1] What does IMHO mean? (or IMO, IMNSHO, FWIW, OTOH, etc.)?
  488.    (added KUTGW (thanks to Bengt Richter))
  489.  * [15.6] How can I provide printing for my class Fred?
  490.    (added note about cascading operator<< calls)
  491.  * [15.7] How can I provide input for my class Fred?
  492.    (added note about cascading operator<< calls)
  493.  * [16.6] How can I convince my (older) compiler to automatically check new to
  494.    see if it returns NULL?
  495.    (fixed bugs: new handlers don't take arguments, thanks to Scott Aaron;
  496. changed set_new_hanlder to set_new_handler, thanks to Peter Andersson)
  497.  * [16.15] How do I allocate multidimensional arrays using new?
  498.    (rewritten and expanded with a rectangular-matrix case)
  499.  * [18.1] What is "const correctness"?
  500.    (rewrote because of helpful feedback from Nor Jaidi)
  501.  * [21.6] Is a Circle a kind-of an Ellipse?
  502.    (added a caveat that setSize(x,y) isn't sacred)
  503.  * [21.7] Are there other options to the "Circle is/isnot kind-of Ellipse"
  504.    dilemma?
  505.    (added a caveat that setSize(x,y) isn't sacred)
  506.  * [21.8] But I have a Ph.D. in Mathematics, and I'm sure a Circle is a kind of
  507.    an Ellipse! Does this mean Marshall Cline is stupid? Or that C++ is stupid?
  508.    Or that OO is stupid?
  509.    (added a caveat that setSize(x,y) isn't sacred)
  510.  * [23.1] When my base class's constructor calls a virtual function, why
  511.    doesn't my derived class's override of that virtual function get invoked?
  512.    (rewrote)
  513.  * [29.8] How can I pass an object of a C++ class to/from a C function?
  514.    (added #ifndef FRED_H / #define FRED_H to code)
  515.  * [33.5] Where can I get information about the C++ compiler from {Borland,
  516.    IBM, Microsoft, Semantic, Sun, etc.}?
  517.    (added HP C++)
  518.  * [35.4] Where can I get OS-specific questions answered (e.g., BC++, DOS,
  519.    Windows, etc)?
  520.    (added Borland C++ URLs thanks to Simon Edlund)
  521.  
  522. ==============================================================================
  523.  
  524. [4.9] What updates were made for the 11/96 release?
  525.  
  526. New FAQs:
  527.  * [2.2] How can I get a Copy of all the HTML files of C++ FAQ Lite so I can
  528.    read them Off-Line?
  529.  * [4.9] What updates were made for the 11/96 release?
  530.  * [20.3] What's the difference between how virtual and non-virtual member
  531.    functions are called?
  532.  * [33.3] How do I display text in the status bar using MFC?
  533.    (with the help of Paul Ganney)
  534.  
  535. Changed FAQs:
  536.  * [8.4] How can you reseat a reference to make it refer to a different object?
  537.    (changed last line from "pointer to const" to "const pointer" thanks to
  538. Neelesh Pandit)
  539.  * [25.11] Are there any other sources of coding standards?
  540.    (rewrote and added more URLs)
  541.  * [33.8] If name mangling was standardized, could I link code compiled with
  542.    compilers from different compiler vendors?
  543.    (reworded and added v-table and v-pointer references[20.3])
  544.  
  545. ==============================================================================
  546.  
  547. [4.10] What updates were made for the 10/96 release?
  548.  
  549. New FAQs:
  550.  * [4.10] What updates were made for the 10/96 release?
  551.  
  552. Changed FAQs:
  553.  * [5.8] Which newsgroup should I post my questions?
  554.    (added comp.sys.mac.programmer.* and comp.sys.mac.oop.*)
  555.  * [16.6] How can I convince my (older) compiler to automatically check new to
  556.    see if it returns NULL?
  557.    (added comments on constructors of globals; thanks to William Carroll)
  558.  * [25.11] Are there any other sources of coding standards?
  559.    (added URLs)
  560.  * [33.5] Where can I get information about the C++ compiler from {Borland,
  561.    IBM, Microsoft, Semantic, Sun, etc.}?
  562.    (added URL for Metrowerks and Watcom compilers)
  563.  
  564. ==============================================================================
  565.  
  566. [4.11] What updates were made for the 09/96 release?
  567.  
  568. New FAQs:
  569.  * [4.11] What updates were made for the 09/96 release?
  570.  * [5.1] What does IMHO mean? (or IMO, IMNSHO, FWIW, OTOH, etc.)?
  571.  * [5.2] How do I get comp.lang.c++ to do my homework problem for me?
  572.  * [5.3] What should I do if I see someone else posting a homework problem?
  573.    (with the help of Phil Staite)
  574.  * [18.4] What does "const Fred* p" mean?
  575.  * [18.5] What's the difference between "const Fred* p", "Fred* const p" and
  576.    "const Fred* const p"?
  577.  * [18.6] What does "const Fred& x" mean?
  578.  * [18.7] Does "Fred& const x" make any sense?
  579.  * [18.8] What does "Fred const& x" mean?
  580.  * [18.13] Does "const Fred* p" mean that *p can't change?
  581.  * [25.11] Are there any other sources of coding standards?
  582.  * [33.4] How can I decompile an executable program back into C++ source code?
  583.    (with the help of Phil Staite)
  584.  
  585. Changed FAQs:
  586.  * [8.4] How can you reseat a reference to make it refer to a different object?
  587.    (added a cross reference regarding pointer to const[18.4])
  588.  * [9.4] How do you tell the compiler to make a non-member function inline?
  589.    (strengthened the "Note:" at the end)
  590.  * [16.19] How can I force objects of my class to always be created via new
  591.    rather than as locals or global/static objects?
  592.    (reworded and added a paragraph on using friend[14] to soften the original
  593. goal)
  594.  * [16.21] How do I provide reference counting with copy-on-write semantics?
  595.    (added links to the self assignment[12.1] discussion)
  596.  * [16.22] How do I provide reference counting with copy-on-write semantics for
  597.    a hierarchy of classes?
  598.    (added links to the self assignment[12.1] discussion)
  599.  * [17.2] How should I handle resources if my constructors may throw
  600.    exceptions?
  601.    (added cross-references for reference-counted[16.20] and remote[13.3]
  602. smart-pointers)
  603.  * [21.2] Derived* --> Base* works OK; why doesn't Derived** --> Base** work?
  604.    (fixed a bug with help from William Wu)
  605.  * [22.4] What is a "pure virtual" member function?
  606.    (reworded)
  607.  * [32.4] Where can I get help on how to use STL?
  608.    (fixed the URL for Kenny Zalewski's STL guide)
  609.  * [33.5] Where can I get information about the C++ compiler from {Borland,
  610.    IBM, Microsoft, Semantic, Sun, etc.}?
  611.    (added URLs for Silicon Graphics and Symantec compilers)
  612.  * [35.2] Are there any pretty-printers that reformat C++ source code?
  613.    (added a URL for "V Communications")
  614.  
  615. ==============================================================================
  616.  
  617. [4.12] What updates were made for the 08/96 release?
  618.  
  619. Global changes:
  620.  * Recently added/changed FAQs are now chained together using hyper-links
  621.    (mainly for those who want to find out what has changed since the last time
  622.    they read this document; only available in the HTML version)
  623.  * Recently added FAQs are now decorated with [NEW!] ("recently" = "in the
  624.    current or previous release")
  625.  * Recently changed FAQs are now decorated with [UPDATED!] ("recently" = "in
  626.    the current or previous release")
  627.  * The look-and-feel of hyper-linked cross references is changed (NOTE: this
  628.    change ONLY shows up in the HTML version)
  629.    - The old look-and-feel "looks like this[4.12]"
  630.    - The new look-and-feel "looks like this[4.12]"
  631.  * Added section [12] Assignment operators
  632.  * Added section [26] Learning OO/C++
  633.  
  634. New FAQs:
  635.  * [4.12] What updates were made for the 08/96 release?
  636.  * [7.3] When is an interface "good"?
  637.  * [7.4] What is encapsulation?
  638.  * [7.5] How does C++ help with the tradeoff of safety vs. usability?
  639.  * [9.2] How can inline functions help with the tradeoff of safety vs. speed?
  640.  * [12.1] What is "self assignment"?
  641.  * [12.2] Why should I worry about "self assignment"?
  642.  * [12.3] OK, OK, already; I'll handle self-assignment.  How do I do it?
  643.  * [13.3] What are some examples of operator overloading?
  644.  * [15.10] Why can't I open a file in a different directory such as
  645.    "..\test.dat"?
  646.  * [26.1] What is mentoring?
  647.  * [26.2] Should I learn C before I learn OO/C++?
  648.  * [26.3] Should I learn Smalltalk before I learn OO/C++?
  649.  * [26.4] Should I buy one book, or several?
  650.  * [26.5] What are some best-of-breed C++ morality guides?
  651.  * [26.6] What are some best-of-breed C++ legality guides?
  652.  * [26.7] Are there other OO books that are relevant to OO/C++?
  653.  * [33.5] Where can I get information about the C++ compiler from {Borland,
  654.    IBM, Microsoft, Semantic, Sun, etc.}?
  655.  
  656. Changed FAQs:
  657.  * [6.4] Is C++ better than Ada? (or Visual Basic, C, FORTRAN, Pascal,
  658.    Smalltalk, or any other language?)
  659.    (reworded the last paragraph)
  660.  * [6.6] How long does it take to learn OO/C++?
  661.    (added management-level hints for training developers in OO/C++)
  662.  * [9.3] Why should I use inline functions? Why not just use plain old #define
  663.    macros?
  664.    (moved)
  665.  * [13.4] But operator overloading makes my class look ugly; isn't it supposed
  666.    to make my code clearer?
  667.    (rewritten)
  668.  * [13.8] How do I create a subscript operator for a Matrix class?
  669.    (fixed a bug: "double** data_" is now "double* data_")
  670.  * [25.9] Are there any lint-like guidelines for C++?
  671.    (added links to the self assignment[12.1] discussion)
  672.  * [26.6] What are some best-of-breed C++ legality guides?
  673.    (fixed the ISBN for Stan Lippman's book)
  674.  * [27.1] What's the difference between C++ and Smalltalk?
  675.    (rewritten)
  676.  * [32.5] How can you tell if you have a dynamically typed C++ class library?
  677.    (moved from the section on Smalltalk[27])
  678.  * [32.6] What is the NIHCL? Where can I get it?
  679.    (moved from the section on Smalltalk[27])
  680.  * [32.9] Where can I get tons and tons of more information on C++ class
  681.    libraries?
  682.    (updated the URL)
  683.  * [34.4] Why can't the compiler find my header file in
  684.    #include "c:\test.hpp" ?
  685.    (updated to refer to [15.10])
  686.  
  687. ==============================================================================
  688.  
  689. [4.13] What updates were made for the 07/96 release?
  690.  
  691. Global changes:
  692.  * Created an extensive subject index
  693.  * Added hyper-linked internal cross references throughout (mainly useful for
  694.    the HTML version)
  695.  * Changed the name of the document from On-Line C++ FAQs to C++ FAQs Lite
  696.  * Created section [23] Inheritance -- what your mother never told you
  697.  * Split sections [10] Constructors and [11] Destructors into two distinct
  698.    sections
  699.  * Major reorganization of sections [19] Inheritance -- basics, [20]
  700.    Inheritance -- virtual functions, [21] Inheritance -- proper inheritance and
  701.    substitutability, and [22] Inheritance -- abstract base classes (ABCs)
  702.  * Added example code throughout section [29] How to mix C and C++
  703.  
  704. New FAQs:
  705.  * [4.13] What updates were made for the 07/96 release?
  706.  * [5.5] What do I do if someone else posts a question that's already in the
  707.    FAQ?
  708.  * [5.6] What makes a good Subject: line?
  709.  * [6.8] Are virtual functions (dynamic binding) central to OO/C++?
  710.  * [6.9] I'm from Missouri.  Can you give me a simple reason why virtual
  711.    functions (dynamic binding) make a big difference?
  712.  * [7.6] How can I prevent other programmers from violating encapsulation by
  713.    seeing the private parts of my class?
  714.  * [7.7] Is Encapsulation a Security device?
  715.  * [10.4] Is the default constructor for Fred always Fred::Fred()?
  716.  * [10.5] Which constructor gets called when I create an array of Fred objects?
  717.  * [10.8] What is the "Named Constructor Idiom"?
  718.  * [10.9] Why can't I initialize my static member data in my constructor's
  719.    initialization list?
  720.  * [11.2] What's the order that local objects are destructed?
  721.  * [11.3] What's the order that objects in an array are destructed?
  722.  * [11.4] Can I overload the destructor for my class?
  723.  * [11.5] Should I explicitly call a destructor on a local variable?
  724.  * [11.6] What if I want a local to "die" before the close } of the scope in
  725.    which it was created? Can I call a destructor on a local if I really want
  726.    to?
  727.  * [11.7] OK, OK already; I won't explicitly call the destructor of a local;
  728.    but how do I handle the above situation?
  729.  * [11.8] What if I can't wrap the local in an artificial block?
  730.  * [11.9] But can I explicitly call a destructor if I've allocated my object
  731.    with new?
  732.  * [11.10] What is "placement new" and why would I use it?
  733.  * [11.11] When I write a destructor, do I need to explicitly call the
  734.    destructors for my member objects?
  735.  * [13.6] Can I overload operator== so it lets me compare two char[] using a
  736.    string comparison?
  737.  * [13.8] How do I create a subscript operator for a Matrix class?
  738.  * [13.10] Should I design my classes from the outside (interfaces first) or
  739.    from the inside (data first)?
  740.  * [15.7] How can I provide input for my class Fred?
  741.  * [16.5] Do I need to check for NULL after p = new Fred()?
  742.  * [16.6] How can I convince my (older) compiler to automatically check new to
  743.    see if it returns NULL?
  744.  * [16.7] Do I need to check for NULL before delete p?
  745.  * [16.8] What are the two steps that happen when I say delete p?
  746.  * [16.9] In p = new Fred(), does the Fred memory "leak" if the Fred
  747.    constructor throws an exception?
  748.  * [16.12] Can I drop the [] when deleteing array of some built-in type (char,
  749.    int, etc)?
  750.  * [16.13] After p = new Fred[n], how does the compiler know there are n
  751.    objects to be destructed during delete[] p?
  752.  * [16.20] How do I do simple reference counting?
  753.  * [16.21] How do I provide reference counting with copy-on-write semantics?
  754.  * [16.22] How do I provide reference counting with copy-on-write semantics for
  755.    a hierarchy of classes?
  756.  * [17.3] How do I change the string-length of an array of char to prevent
  757.    memory leaks even if/when someone throws an exception?
  758.  * [18.12] Why does the compiler allow me to change an int after I've pointed
  759.    at it with a const int*?
  760.  * [22.5] How do you define a copy constructor or assignment operator for a
  761.    class that contains a pointer to a (abstract) base class?
  762.  * [23.4] What does it mean that the "virtual table" is an unresolved external?
  763.  * [25.10] Which is better: identifier names that_look_like_this or identifier
  764.    names thatLookLikeThis?
  765.    (with the help of James Robinson)
  766.  * [29.1] What do I need to know when mixing C and C++ code?
  767.  * [30.5] How can I avoid syntax errors when calling a member function using a
  768.    pointer-to-member-function?
  769.  * [31.1] How can I make a perl-like associative array in C++?
  770.  * [32.3] How can I find a Fred object in an STL container of Fred* such as
  771.    vector<Fred*>?
  772.  * [32.9] Where can I get tons and tons of more information on C++ class
  773.    libraries?
  774.  * [33.6] How do compilers use "over-allocation" to remember the number of
  775.    elements in an allocated array?
  776.  * [33.7] How do compilers use an "associative array" to remember the number of
  777.    elements in an allocated array?
  778.  * [34.4] Why can't the compiler find my header file in
  779.    #include "c:\test.hpp" ?
  780.  * [34.5] Does C++ have new scoping rules for for loops?
  781.  
  782. Changed FAQs:
  783.  * [5.4] How can I find out about general netiquette so I don't embarrass
  784.    myself?
  785.    (rewritten)
  786.  * [5.7] How do I post a question about code that doesn't work correctly?
  787.    (rewritten)
  788.  * [7.8] What's the difference between the keywords struct and class?
  789.    (rewritten)
  790.  * [10.10] Why are classes with static data members getting linker errors?
  791.    (rewritten)
  792.  * [11.12] When I write a derived class's destructor, do I need to explicitly
  793.    call the destructor for my base class?
  794.    (added example code to illustrate the compiler's automagic calls to
  795. destructors of member objects and base class subobjects)
  796.  * [15.6] How can I provide printing for my class Fred?
  797.    (added example code to illustrate operator<< on an ostream)
  798.  * [15.8] How can I provide printing for an entire hierarchy of classes?
  799.    (moved from the section on Abstraction[22])
  800.  * [16.19] How can I force objects of my class to always be created via new
  801.    rather than as locals or global/static objects?
  802.    (added a reference to the Named Constructor Idiom[10.8])
  803.  * [29.2] How can I include a standard C header file in my C++ code?
  804.    (rewritten)
  805.  * [29.3] How can I include a non-system C header file in my C++ code?
  806.    (rewritten)
  807.  * [29.4] How can I modify my own C header files so it's easier to #include
  808.    them in C++ code?
  809.    (rewritten)
  810.  * [33.10] Is there a yacc-able C++ grammar?
  811.    (updated the URL for the yacc-able C++ grammar)
  812.  * [35.2] Are there any pretty-printers that reformat C++ source code?
  813.    (added "C-Clearly" and GNU indent to the list of pretty-printers)
  814.  
  815. ==============================================================================
  816.  
  817. [4.14] What updates were made for the 06/96 release?
  818.  
  819. New FAQs:
  820.  * [4.14] What updates were made for the 06/96 release?
  821.  * [10.2] Is there any difference between List x; and List x();?
  822.  * [34.8] Why is floating point so inaccurate? Why doesn't this print 0.43?
  823.    (with the help of Phil Staite)
  824.  
  825. Changed FAQs:
  826.  * [2.1] Where's the closest mirror site to access this document?
  827.    (added Finland mirror site: www.utu.fi/~sisasa/oasis/cppfaq/)
  828.  * [3.1] Is there a C++ FAQ Book in addition to the C++ FAQ Lite?
  829.    (fixed URL of book at Addison-Wesley)
  830.  * [3.3] How can I download an electronic copy of the C++ FAQ Book?
  831.    (fixed URL of book at Addison-Wesley)
  832.  * [18.1] What is "const correctness"?
  833.    (added info on what happens when you try to pass a const parameter to a
  834. non-const function)
  835.  * [20.4] When should my destructor be virtual?
  836.    (added the nitty-gritty rule for when you need to have a virtual destructor)
  837.  * [21.4] Is an array of Derived a kind-of array of Base?
  838.    (fixed bug in code)
  839.  * [22.3] What is an ABC?
  840.    (reworded)
  841.  * [22.4] What is a "pure virtual" member function?
  842.    (reworded)
  843.  * [28.4] Should I normally use pointers to freestore allocated objects for my
  844.    data members, or should I use "composition"?
  845.    (reworded)
  846.  * [29.8] How can I pass an object of a C++ class to/from a C function?
  847.    (fixed a bug in the code)
  848.  * [31.4] What's the idea behind templates?
  849.    (reworded)
  850.  * [31.6] What's the syntax / semantics for a "class template"?
  851.    (reworded)
  852.  * [35.1] Is there a TeX or LaTeX macro that fixes the spacing on "C++"?
  853.    (added a new LaTeX macro)
  854.  * [35.2] Are there any pretty-printers that reformat C++ source code?
  855.    (fixed URL of C++2LaTeX)
  856.  
  857. ==============================================================================
  858.  
  859. [4.15] What updates were made for the 05/96 release?
  860.  
  861. Updated everything.  Transformed the source from raw text to HTML.
  862. Reorganized, reworded, expanded, added example code, etc, etc.
  863.  
  864. ==============================================================================
  865.  
  866. [4.16] What updates were made for the 04/96 release?
  867.  
  868. New FAQs:
  869.  * [4.16] What updates were made for the 04/96 release?
  870.  * [29.2] How can I include a standard C header file in my C++ code?
  871.  * [29.3] How can I include a non-system C header file in my C++ code?
  872.  * [29.4] How can I modify my own C header files so it's easier to #include
  873.    them in C++ code?
  874.  
  875. Changed FAQs:
  876.  * [2.1] Where's the closest mirror site to access this document?
  877.    (added European mirror site:
  878. www.informatik.uni-konstanz.de/~kuehl/cpp/cppfaq.htm)
  879.  * [16.14] Is it legal (and moral) for a member function to say delete this?
  880.    (rewritten)
  881.  * [22.4] What is a "pure virtual" member function?
  882.    (rewritten)
  883.  
  884. ==============================================================================
  885.  
  886. [4.17] What updates were made for the 03/96 release?
  887.  
  888. New FAQs:
  889.  * [4.17] What updates were made for the 03/96 release?
  890.  * [6.4] Is C++ better than Ada? (or Visual Basic, C, FORTRAN, Pascal,
  891.    Smalltalk, or any other language?)
  892.  * [31.2] How can I build a <favorite container> of objects of different types?
  893.    (with the help of Phil Staite)
  894.  
  895. Changed FAQs:
  896.  * [2.3] How can I get a Copy of all the "plaintext" files of C++ FAQ Lite so I
  897.    can read them Off-Line?
  898.    (added URL ftp://rtfm.mit.edu/pub/usenet-by-group/comp.lang.c++/)
  899.  * [6.12] Where can I get a copy of the ANSI/ISO C++ standard?
  900.    (fixed the URL for the ANSI/ISO-C++ Committee Draft)
  901.  * [15.1] Why should I use <iostream.h> instead of the traditional <stdio.h>?
  902.    (reworded)
  903.  * [16.2] Can I free() pointers allocated with new? Can I delete pointers
  904.    allocated with malloc()?
  905.    (added an admonition not to mix new and free() or malloc() and delete)
  906.  * [25.1] What are some good C++ coding standards?
  907.    (reworded)
  908.  * [25.2] Are coding standards necessary? Are they sufficient?
  909.    (reworded)
  910.  * [25.3] Should our organization determine coding standards from our C
  911.    experience?
  912.    (reworded)
  913.  * [25.9] Are there any lint-like guidelines for C++?
  914.    (reworded)
  915.  * [27.3] Which is a better fit for C++: "static typing" or "dynamic typing"?
  916.    (updated info on dynamic_cast and typeid())
  917.  * [35.2] Are there any pretty-printers that reformat C++ source code?
  918.    (fixed URL of C++2LaTeX)
  919.  
  920. ==============================================================================
  921.  
  922. [4.18] What updates were made for the 09/95 release?
  923.  
  924. New FAQs:
  925.  * [4.18] What updates were made for the 09/95 release?
  926.  * [15.9] How can I "reopen" cin and cout in binary mode under DOS and/or OS/2?
  927.  * [32.4] Where can I get help on how to use STL?
  928.  * [32.7] Where can I ftp the code that accompanies "Numerical Recipes"?
  929.  * [32.8] Why is my executable so large?
  930.  
  931. Changed FAQs:
  932.  * [6.12] Where can I get a copy of the ANSI/ISO C++ standard?
  933.    (added info on FTP access for the ANSI/ISO-C++ Committee Draft)
  934.  * [8.3] What happens if you return a reference?
  935.    (fixed a bug (variable i was not declared))
  936.  * [16.15] How do I allocate multidimensional arrays using new?
  937.    (reworded)
  938.  * [32.2] Where can I get a copy of "STL"?
  939.    (reworded)
  940.  
  941. ==============================================================================
  942.  
  943. [4.19] What updates were made for the 06/95 release?
  944.  
  945. New FAQs:
  946.  * [4.19] What updates were made for the 06/95 release?
  947.  * [16.15] How do I allocate multidimensional arrays using new?
  948.    (with the help of Doug Shapter)
  949.  * [30.3] Why do I keep getting compile errors (type mismatch) when I try to
  950.    use a member function as an interrupt service routine?
  951.  
  952. Changed FAQs:
  953.  * [6.12] Where can I get a copy of the ANSI/ISO C++ standard?
  954.    (fixed the US-Mail access for the ANSI/ISO-C++ Committee Draft)
  955.  * [16.19] How can I force objects of my class to always be created via new
  956.    rather than as locals or global/static objects?
  957.    (rewritten)
  958.  
  959. ==============================================================================
  960.  
  961. [4.20] What updates were made for the 04/95 release?
  962.  
  963. New FAQs:
  964.  * [4.20] What updates were made for the 04/95 release?
  965.  * [35.4] Where can I get OS-specific questions answered (e.g., BC++, DOS,
  966.    Windows, etc)?
  967.  
  968. Changed FAQs:
  969.  * [32.6] What is the NIHCL? Where can I get it?
  970.    (fixed the FTP address)
  971.  
  972. ==============================================================================
  973.  
  974. [4.21] What updates were made for the 03/95 release?
  975.  
  976. New FAQs:
  977.  * [4.21] What updates were made for the 03/95 release?
  978.  * [15.4] Why does my input seem to process past the end of file?
  979.  * [15.5] Why is my program ignoring my input request after the first
  980.    iteration?
  981.  * [16.14] Is it legal (and moral) for a member function to say delete this?
  982.  
  983. Changed FAQs:
  984.  * [35.3] Is there a C++-mode for GNU emacs? If so, where can I get it?
  985.    (updated the information on cc-mode.el)
  986.  
  987. ==============================================================================
  988.  
  989. [4.22] What updates were made for the 01/95 release?
  990.  
  991. New FAQs:
  992.  * [2.5] Where can I download a Chinese translation of this on-line document?
  993.  * [4.22] What updates were made for the 01/95 release?
  994.  
  995. ==============================================================================
  996.  
  997. [4.23] What updates were made for the 12/94 release?
  998.  
  999. New FAQs:
  1000.  * [4.23] What updates were made for the 12/94 release?
  1001.  * [32.2] Where can I get a copy of "STL"?
  1002.  * [33.8] If name mangling was standardized, could I link code compiled with
  1003.    compilers from different compiler vendors?
  1004.  
  1005. Changed FAQs:
  1006.  * [24.3] Which should I prefer: composition or private inheritance?
  1007.    (reworded)
  1008.  
  1009. ==============================================================================
  1010.  
  1011. [4.24] What updates were made for the 11/94 release?
  1012.  
  1013. New FAQs:
  1014.  * [3.1] Is there a C++ FAQ Book in addition to the C++ FAQ Lite?
  1015.  * [3.2] Is there a big difference between C++ FAQ Lite and C++ FAQ Book?
  1016.  * [3.3] How can I download an electronic copy of the C++ FAQ Book?
  1017.  * [4.24] What updates were made for the 11/94 release?
  1018.  
  1019. ==============================================================================
  1020.  
  1021. [4.25] What updates were made for the 08/94 release?
  1022.  
  1023. Rewrote most of the answers to provide general cleanup.  Changed the quotation
  1024. marks to "..." rather than `...' and/or ``...''.  Sample code lines now start
  1025. with a tab (no other lines starts with a tab).  Everything was edited; minor
  1026. modifications everywhere.
  1027.  
  1028. New FAQs:
  1029.  * [4.25] What updates were made for the 08/94 release?
  1030.  * [18.10] What do I do if I want to update an "invisible" data member inside a
  1031.    const member function?
  1032.  * [27.3] Which is a better fit for C++: "static typing" or "dynamic typing"?
  1033.  
  1034. ==============================================================================
  1035.  
  1036. [4.26] What updates were made before 08/94?
  1037.  
  1038. This document was originally written in 1991.  I have no record of the specific
  1039. changes that were made until 8/94.
  1040.  
  1041. ==============================================================================
  1042.  
  1043. -- 
  1044. Marshall Cline / 972-931-9470 / mailto:cline@parashift.com
  1045.