FAQs in section [4]:
[4.1] What updates were made for the 08/01 release?
[Recently created (in 8/01). Click here to go to the next FAQ in the "chain" of recent changes.]
New features:
New FAQs:
Changed FAQs:
- [2.1] Where's the closest mirror site to access this document?
(removed the Finland mirror site it wasn't being kept up-to-date)
- [2.5] Where can I download a Chinese translation of this on-line
document?
(added the URL for the GB-encoded version thanks to Shen Min for the translation)
- [10.6] Should my constructors use "initialization lists" or "assignment"?
(reworded various things thanks to Stan Brown)
- [10.7] Should you use the this pointer in the constructor?
(wordsmithing thanks to Stan Brown)
- [10.11] What's the "static initialization order fiasco"?
(closed loophole wrt built-in/intrinsic types thanks to Cyril Schmidt)
- [10.12] How do I prevent the "static
initialization order fiasco"?
(closed loophole wrt built-in/intrinsic types thanks to Cyril Schmidt)
- [10.14] How do I prevent the "static
initialization order fiasco" for my static data members?
(closed loophole wrt built-in/intrinsic types thanks to Cyril Schmidt)
- [10.17] What is the "Named Parameter Idiom"?
(wordsmithing and added last paragraph with inspiration from Stan Brown)
- [14.2] Do friends violate encapsulation?
(added the last paragraph with inspiration from Stan Brown)
- [14.4] What does it mean that "friendship
isn't inherited, transitive, or reciprocal"?
(wordsmithing ("nor" vs. "or") thanks to Herbert Gintis)
- [15.12] How do I convert a value (a number, for example) to
a std::string?
(changed <stdio> to <cstdio> thanks to Stan Brown)
- [15.13] How do I convert a std::string to a number?
(changed <stdio> to <cstdio> thanks to Stan Brown)
- [16.5] Do I need to check for NULL after p = new Fred()?
(changed endl to std::endl)
- [16.24] Can you absolutely prevent people
from subverting the reference counting mechanism, and if so, should
you?
(wordsmithing thanks to Stan Brown)
- [16.25] Can I use a garbage collector in C++?
(added cross-references thanks to Stan Brown)
- [16.26] What are the two kinds of garbage collectors for
C++?
(added a URL for Attardi and Flagella's CMM thanks to Markus Laker)
- [19.7] How can I protect derived classes from breaking when I
change the internal parts of the base class?
(wordsmithing thanks to Stan Brown)
- [20.6] What is a "virtual constructor"?
(added the paragraph about MS VC++ 6.0's mishandling of Covariant Return Types; thanks to Karthik for pointing this out)
- [26.4] Should I buy one book, or several?
(wordsmithing thanks to Stan Brown)
- [29.1] What do I need to know when mixing C and C++ code?
(fixed a typo thanks to Kumaran Surrendra; added the paragraph on compiling everything, even C-style code, using a C++ compiler thanks to Gary Jenkins)
- [32.2] Where can I get a copy of "STL"?
(added comment about "<string>" thanks to Stan Brown)
- [33.5] Where can I get information about the C++ compiler
from {Borland, IBM, Microsoft, Symantec, Sun, etc.}?
(added URL for Digital Mars C++ thanks to Walter Bright)
- [34.3] What should be done with macros that need to
paste two tokens together?
(removed ambivalence regarding second layer of indirection when using ## thanks to Joshua Fraser and Ronald Fischer)
- [35.1] Is there a TeX or LaTeX macro that fixes the spacing on
"C++"?
(wordsmithing thanks to Stan Brown)
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.2] What updates were made for the 04/01 release?
[Recently created (in 4/01). Click here to go to the next FAQ in the "chain" of recent changes.]
Global changes:
- Updated the opening page so it lists both the chain of recent
changes as well as the table of recent changes. This improvement is thanks to
a suggestion by John Kewley.
Moved the main FAQ site to www.parashift.com/c++-faq-lite/. (This was unfortunately
necessary due to a business issue involving AT&T and the previous web hosting
company, Cerf-Net.)
New FAQs:
Changed FAQs:
- [5.2] How do I get other people to do my homework problem for
me?
(added stuff about the evils of asking others to do your homework for you via email)
- [6.12] Where can I get a copy of the ANSI/ISO C++ standard?
(total rewrite; changed several URLs thanks to Brian K. Hamon and Garen Parham)
- [9.7] Are inline functions guaranteed to make your performance
better?
(explained "code bloat" and also added lots of if's, and's and but's)
- [10.6] Should my constructors use "initialization lists" or "assignment"?
(rewrote)
- [10.7] Should you use the this pointer in the constructor?
(rewrote because of a suggestion from Perry Rapp)
- [10.9] Why can't I initialize my static member
data in my constructor's initialization list?
(added a "," in the initialization list thanks to Yaroslav Mironov)
- [14.2] Do friends violate encapsulation?
(made a bit more emphatic)
- [14.4] What does it mean that "friendship
isn't inherited, transitive, or reciprocal"?
(added the "not reciprocal" item thanks to Karel Roose)
- [15.7] But shouldn't I always use a printOn()
method rather than a friend function?
(fixed a bug thanks to Richard Hector)
- [16.16] But the previous FAQ's code is SOOOO tricky and error
prone! Isn't there a simpler way?
(fixed the Star Trek movie number thanks to Chris Sheppard)
- [16.16] But the previous FAQ's code is SOOOO tricky and error
prone! Isn't there a simpler way?
(wordsmithed last paragraph at the suggestion of prapp)
- [16.21] How do I do simple reference counting?
(moved definition of Fred::create() methods below the definition of class FredPtr)
- [16.26] What are the two kinds of garbage collectors for
C++?
(added a URL for Bartlett's collector thanks to Abhishek)
- [17.2] How can I handle a constructor that fails?
(fixed typo ("its" vs. "it's") thanks to Wes Bemont)
- [24.2] How are "private inheritance" and "composition"
similar?
(changed the syntax to using Engine::start; and added the sixth distinction thanks to Stan Brown; added the third similarity; added "aggregation" as another synonym; general wordsmithing)
- [25.1] What are some good C++ coding standards?
(fixed typo changing "where" to "were" thanks to Robert Marshall)
- [25.11] Which is better: identifier names
that_look_like_this or identifier names thatLookLikeThis?
(clarified the last paragraph)
- [25.12] Are there any other sources of coding standards?
(added a new URL thanks to Christopher Lott <chris "at" lott.com>; added www.arcticlabs.com/codingstandards/ thanks to Richard)
- [26.4] Should I buy one book, or several?
(rewrote; added the "programming by example" category)
- [28.2] What is "virtual data," and how-can / why-would I use it in
C++?
(fixed the sentence just before Pros & Cons list (changed StretchableArray to StretchableStack) thanks to Harri Klapuri)
- [29.2] How can I include a standard C header file in my C++
code?
(added the whole section on "compiling C code with a C++ compiler," with inspiration thanks to Sebastian Kapfer)
- [30.6] How do I create and use an array of pointers to member
functions?
(removed the array size from the declaration of array a, that way there's one less thing to change if someone ever adds another function-pointer to the array thanks to Serge Ansay)
- [31.1] Why should I use container classes rather than simple arrays?
(clarified "local" vs. "non-static local" thanks to Garen Parham)
- [33.1] Where can I download a free C++ compiler?
(changed to a different site since the old URL was dead thanks to Victor R. Volkman)
- [33.5] Where can I get information about the C++ compiler
from {Borland, IBM, Microsoft, Symantec, Sun, etc.}?
(fixed "Semantic" to "Symantec" and "Gary Comeau" to "Greg Comeau" thanks to Scott Tringali; fixed the URL to SGI's compiler thanks to Toon Knapen)
- [33.10] Is there a yacc-able C++ grammar?
(rewrote; added a new grammar/lexer plus a new URL for the old grammar/lexer thanks to Ed Willink)
- [35.1] Is there a TeX or LaTeX macro that fixes the spacing on
"C++"?
(added a new LaTeX macro thanks to Bob Kline; rewrote)
- [35.2] Are there any pretty-printers that reformat C++ source
code?
(fixed the URL for Artistic Style thanks to Claus Dahl; added A2PS thanks to Clark Dorman)
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.3] What updates were made for the 07/00 release?
Global changes:
- Moved the main FAQ site to www.parashift.com/c++-faq-lite/. (This was unfortunately
necessary due to a business issue involving AT&T and the previous web hosting
company, Cerf-Net.)
New FAQs:
Changed FAQs:
- [2.5] Where can I download a Chinese translation of this on-line
document?
(updated the URL)
- [3.1] Is there a C++ FAQ Book in addition to the C++ FAQ Lite?
(added BookPool.com and AllDirect.com thanks to Stan Brown, plus reorganized)
- [3.2] Is there a big difference between C++ FAQ Lite
and C++ FAQ Book?
(changed 'much' to 'many' thanks to Stan Brown)
- [6.5] Who uses C++?
(rewrote)
- [6.8] Are virtual functions (dynamic binding) central to
OO/C++?
(inserted "the" before "difference" thanks to Stan Brown and reworded references to STL)
- [6.11] Is C++ standardized?
(changed "has been finalized" to "was finalized" thanks to Stan Brown)
- [6.12] Where can I get a copy of the ANSI/ISO C++ standard?
(added URLs to free copies of CD2)
- [9.3] Why should I use inline functions? Why not just use
plain old #define macros?
(rewrote the sentence on #define being evil)
- [10.5] Which constructor gets called when I create an
array of Fred objects?
(changed so it uses new-style headers and the std:: syntax and reworded references to STL)
- [10.8] What is the "Named Constructor Idiom"?
(fixed a typo (Fred vs. Point) in the prose thanks to Roy LeCates)
- [12.3] OK, OK, already; I'll handle self-assignment. How do
I do it?
(reworded the last paragraph)
- [13.3] What are some examples of operator overloading?
(changed so it uses the std:: syntax)
- [13.6] Can I overload operator== so it lets
me compare two char[] using a string comparison?
(changed so it uses the std:: syntax)
- [13.8] How do I create a subscript operator for a
Matrix class?
(changed so it uses new-style headers and the std:: syntax)
- [13.10] Should I design my classes from the outside
(interfaces first) or from the inside (data first)?
(changed so it uses new-style headers and the std:: syntax and reworded references to STL)
- [15.1] Why should I use <iostream> instead of the
traditional <cstdio>?
(renamed "subclassable" to "inheritable" and revamped to use new-style headers)
- [15.2] Why does my program go into an infinite loop when
someone enters an invalid input character?
(changed so it uses new-style headers and the std:: syntax)
- [15.3] How does that funky while (std::cin >> foo) syntax
work?
(changed so it uses new-style headers and the std:: syntax)
- [15.4] Why does my input seem to process past the end of file?
(changed so it uses new-style headers and the std:: syntax)
- [15.5] Why is my program ignoring my input request
after the first iteration?
(changed so it uses new-style headers and the std:: syntax)
- [15.6] How can I provide printing for my class Fred?
(changed so it uses new-style headers and the std:: syntax)
- [15.8] How can I provide input for my class Fred?
(changed so it uses new-style headers and the std:: syntax)
- [15.9] How can I provide printing for an entire hierarchy of
classes?
(changed so it uses new-style headers and the std:: syntax)
- [15.10] How can I "reopen" std::cin and std::cout in binary
mode under DOS and/or OS/2?
(changed so it uses new-style headers and the std:: syntax)
- [15.11] Why can't I open a file in a different directory
such as "..\test.dat"?
(changed so it uses new-style headers and uses the std:: syntax)
- [16.5] Do I need to check for NULL after p = new Fred()?
(changed so it uses new-style headers and the std:: syntax)
- [16.6] How can I convince my (older) compiler to
automatically check new to see if it returns NULL?
(changed the example to use throw rather than abort() thanks to Stan Brown; changed to use new-style headers and the std:: syntax)
- [16.13] After p = new Fred[n], how does the
compiler know there are n objects to be destructed during delete[] p?
(changed "popluar" to "popular" thanks to Fabrice Clerc)
- [16.15] How do I allocate multidimensional arrays using new?
(fixed a leak in the third manipulateArray() by moving another for loop into the try block)
- [16.16] But the previous FAQ's code is SOOOO tricky and error
prone! Isn't there a simpler way?
(clarified the last paragraph)
- [16.17] But the above Matrix class is specific to
Fred! Isn't there a way to make it generic?
(rewrote)
- [16.19] Does C++ have arrays whose length can be specified at
run-time?
(changed so it uses new-style headers and the std:: syntax and reworded references to STL)
- [16.22] How do I provide reference counting with copy-on-write
semantics?
(rewrote the first paragraph for clarity thanks to Fabrice Clerc)
- [16.23] How do I provide reference counting with
copy-on-write semantics for a hierarchy of classes?
(changed so it uses new-style headers and the std:: syntax)
- [17.5] How do I change the string-length of an array of
char to prevent memory leaks even if/when someone throws an exception?
(rewrote the last half)
- [18.1] What is "const correctness"?
(changed so it uses new-style headers and the std:: syntax)
- [18.2] How is "const correctness" related to ordinary
type safety?
(changed so it uses new-style headers and the std:: syntax)
- [18.9] What is a "const member function"?
(removed a spurious ")" thanks to Stan Brown)
- [18.12] Why does the compiler allow me to change an int after
I've pointed at it with a const int*?
(changed so it uses new-style headers and the std:: syntax)
- [19.3] How do you express inheritance in C++?
(added "derived class of" to the list of synonyms)
- [19.7] How can I protect derived classes from breaking when I
change the internal parts of the base class?
(renamed "subclass" to "derived class")
- [21.4] Is an array of Derived a kind-of array of Base?
(changed so it uses new-style headers and the std:: syntax and reworded references to STL)
- [21.5] Does array-of-Derived is-not-a-kind-of
array-of-Base mean arrays are bad?
(changed so it uses new-style headers and the std:: syntax and reworded references to STL)
- [22.3] What is an ABC?
(renamed "subclass" to "derived class")
- [22.4] What is a "pure virtual" member function?
(renamed "subclass" to "derived class")
- [24.3] Which should I prefer: composition or private
inheritance?
(changed so it uses new-style headers and the std:: syntax)
- [24.5] How is protected inheritance related to private
inheritance?
(renamed "subclass" to "derived class")
- [24.6] What are the access rules with private
and protected inheritance?
(renamed "subclass" to "derived class")
- [25.4] What's the difference between <xxx> and
<xxx.h> headers?
(changed <xyz.h> to <xxx.h> and misc wordsmithing thanks to Stan Brown)
- [25.5] Is the ?: operator evil since it can be used to create
unreadable code?
(changed so it uses new-style headers and the std:: syntax)
- [25.9] Are there any lint-like guidelines for C++?
(changed so it uses new-style headers and the std:: syntax)
- [25.11] Which is better: identifier names
that_look_like_this or identifier names thatLookLikeThis?
(improved the precision and added the last two paragraphs thanks to Chris Hurst)
- [25.12] Are there any other sources of coding standards?
(fixed some URLs thanks to James S. Adelman and Stan Brown)
- [27.4] How do you use inheritance in C++, and is that
different from Smalltalk?
(renamed "subclass" to "derived class")
- [27.5] What are the practical consequences of
differences in Smalltalk/C++ inheritance?
(renamed "subclass" to "derived class")
- [28.3] What's the difference between virtual data and
dynamic data?
(renamed "subclass" to "derived class")
- [28.8] Does the poor performance of reference semantics mean I
should pass-by-value?
(renamed "subclass" to "derived class")
- [31.2] How can I make a perl-like associative array in
C++?
(changed so it uses new-style headers and the std:: syntax)
- [31.4] How can I insert/access/change elements from a linked
list/hashtable/etc?
(reworded, plus changed so it uses new-style headers and the std:: syntax)
- [31.6] What's the syntax / semantics for a "class template"?
(changed so it uses new-style headers and the std:: syntax)
- [31.7] What's the syntax / semantics for a "function template"?
(changed so it uses new-style headers and the std:: syntax)
- [32.1] What is the "STL"?
(changed so it uses new-style headers and the std:: syntax)
- [32.2] Where can I get a copy of "STL"?
(added URLs for the SGI implementation and STLport thanks to Stan Brown)
- [32.3] How can I find a Fred object in an STL
container of Fred* such as std::vector<Fred*>?
(changed so it uses new-style headers and the std:: syntax)
- [33.5] Where can I get information about the C++ compiler
from {Borland, IBM, Microsoft, Symantec, Sun, etc.}?
(updated the URL for IBM VisualAge C++ thanks to Rick Alther; updated the URL for GNU C++ thanks to Martin Honnen)
- [34.1] What should be done with macros that contain if?
(added the last three paragraphs, including the link showing why we don't use do {...} while (false))
- [34.2] What should be done with macros that have multiple
lines?
(changed "if (1)..." to "if (true)..." and "do...while (0)" to "do...while (false)")
- [34.5] What are the C++ scoping rules for for loops?
(because the scoping rules for for loops are no longer "new" (thanks Stan Brown), rewote the FAQ)
- [34.8] Why is floating point so inaccurate? Why doesn't this
print 0.43?
(changed so it uses new-style headers and the std:: syntax)
- [34.12] Why can't I put a forward-declared class in a std::vector<>?
(changed so it uses new-style headers and the std:: syntax)
- [35.2] Are there any pretty-printers that reformat C++ source
code?
(added HPS Beauty)
- [35.5] Why does my DOS C++ program says "Sorry: floating
point code not linked"?
(added a cross reference and updated to new header syntax)
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.4] What updates were made for the 03/00 release?
New FAQs:
Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.5] What updates were made for the 01/00 release?
New FAQs:
Changed FAQs:
- [2.1] Where's the closest mirror site to access this document?
(changed the rationale for choosing a close site thanks to Stan Brown)
- [2.4] Why is the download via email? Why not via ftp?
(added caveat that out-of-date reminders aren't implemented yet thanks to Stan Brown)
- [5.1] What does IMHO mean? (or IMO, IMNSHO, FWIW, OTOH, etc.)?
(added IMAO thanks to Charles R Martin)
- [5.13] How do I get the FAQs for a particular newsgroup?
(added www.faqs.org thanks to Dan Kegel)
- [6.8] Are virtual functions (dynamic binding) central to
OO/C++?
(reworded the second paragraph thanks to Stan Brown)
- [6.11] Is C++ standardized?
(changed "American National Standards Organization" to "American National Standards Institute" thanks to Mark Jones; also reworded first paragraph thanks to Stan Brown)
- [12.1] What is "self assignment"?
(changed "knowning" to "knowing" thanks to Stan Brown)
- [12.3] OK, OK, already; I'll handle self-assignment. How do
I do it?
(reworded the last paragraph thanks to Stan Brown)
- [13.5] What operators can/cannot be overloaded?
(got rid of #if/#else/#endif by splitting the example thanks to Stan Brown)
- [15.11] Why can't I open a file in a different directory
such as "..\test.dat"?
(added an explanation that the library routines treat "/" and "\" interchangeably thanks to Stan Brown)
- [18.13] Does "const Fred* p" mean that *p
can't change?
(added an indication that there might be other non-const ways to get at the object thanks to Stan Brown)
- [20.2] How can C++ achieve dynamic binding yet also
static typing?
(added the definition of polymorphism thanks to Kemberli Jennings)
- [22.5] How do you define a copy constructor or assignment
operator for a class that contains a pointer to a (abstract) base class?
(fixed Circle and Square so they inherit from Shape thanks to Paul Campbell)
- [30.1] Is the type of "pointer-to-member-function"
different from "pointer-to-function"?
(changed "It's type is..." to "Its type is..." thanks to Graham Borland)
- [31.4] How can I insert/access/change elements from a linked
list/hashtable/etc?
(reworded first 4 paragraphs thanks to Stan Brown)
- [33.2] Where can I get more information on using MFC and Visual C++?
(updated the URL thanks to Katy Mulvey; changed the maintainer's name thanks to AllanW)
- [33.5] Where can I get information about the C++ compiler
from {Borland, IBM, Microsoft, Symantec, Sun, etc.}?
(changed the URL for Watcom C++ thanks to Stephen Howe; added Comeau C++ thanks to Greg Comeau)
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.6] What updates were made for the 10/99 release?
New FAQs:
Changed FAQs:
- [6.11] Is C++ standardized?
(changed "International Standards Organization" to "International Organization for Standardization" thanks to savvysoft2@aol.com)
- [7.1] What is a class?
(cleaned up wording so no one thinks int is a class thanks to Ron Natalie)
- [8.1] What is a reference?
(added return type to main())
- [8.2] What happens if you assign to a reference?
(inserted "state of the" to avoid ambiguity thanks to Donna)
- [8.3] What happens if you return a reference?
(added return type to main())
- [10.5] Which constructor gets called when I create an
array of Fred objects?
(added return type to main(), plus added stuff about "explicit initialization of arrays" thanks to Keller Beyer)
- [10.8] What is the "Named Constructor Idiom"?
(added return type to main())
- [12.1] What is "self assignment"?
(added return type to main())
- [13.4] But operator overloading makes my class look
ugly; isn't it supposed to make my code clearer?
(added return type to main())
- [13.5] What operators can/cannot be overloaded?
(added return type to main())
- [13.6] Can I overload operator== so it lets
me compare two char[] using a string comparison?
(replaced "class type" with "user-defined type" in first paragraph thanks to Daryle Walker)
- [13.8] How do I create a subscript operator for a
Matrix class?
(added return type to main(); added parameters to the instantiation of m in main() thanks to Boris Pulatov)
- [13.10] Should I design my classes from the outside
(interfaces first) or from the inside (data first)?
(added an admonition to not "roll your own" container classes)
- [15.2] Why does my program go into an infinite loop when
someone enters an invalid input character?
(added return type to main())
- [15.4] Why does my input seem to process past the end of file?
(strengthened the message with another example)
- [15.6] How can I provide printing for my class Fred?
(added return type to main())
- [15.8] How can I provide input for my class Fred?
(added return type to main())
- [15.11] Why can't I open a file in a different directory
such as "..\test.dat"?
(added return type to main())
- [16.6] How can I convince my (older) compiler to
automatically check new to see if it returns NULL?
(added return type to main())
- [16.20] How can I force objects of my class to always be
created via new rather than as locals or global/static objects?
(added return type to main())
- [18.12] Why does the compiler allow me to change an int after
I've pointed at it with a const int*?
(added return type to main())
- [18.13] Does "const Fred* p" mean that *p
can't change?
(added return type to main())
- [21.2] Derived* > Base* works OK; why doesn't
Derived** > Base** work?
(added return type to main(); added methods openGasCap() and fireNuclearMissle() makes the example more exciting)
- [21.4] Is an array of Derived a kind-of array of Base?
(added return type to main())
- [24.4] Should I pointer-cast from a private
derived class to its base class?
(changed PrivateDer to PrivatelyDer in last paragraph)
- [24.6] What are the access rules with private
and protected inheritance?
(rewritten with the using syntax; thanks to Stephen Vance)
- [29.2] How can I include a standard C header file in my C++
code?
(added return type to main())
- [29.3] How can I include a non-system C header file in
my C++ code?
(added return type to main())
- [29.4] How can I modify my own C header files so it's
easier to #include them in C++ code?
(added return type to main())
- [29.5] How can I call a non-system C function f(int,char,float)
from my C++ code?
(added return type to main())
- [30.2] How do I pass a pointer to member function to a signal
handler, X event callback, etc?
(added return type to main())
- [31.2] How can I make a perl-like associative array in
C++?
(added return type to main())
- [31.6] What's the syntax / semantics for a "class template"?
(added return type to main())
- [31.7] What's the syntax / semantics for a "function template"?
(added return type to main())
- [33.1] Where can I download a free C++ compiler?
(fixed the URL)
- [33.5] Where can I get information about the C++ compiler
from {Borland, IBM, Microsoft, Symantec, Sun, etc.}?
(added Edison Design Group C++ thanks to Matt Page)
- [34.8] Why is floating point so inaccurate? Why doesn't this
print 0.43?
(added return type to main())
- [35.2] Are there any pretty-printers that reformat C++ source
code?
(added Artistic Style thanks to Philipp Berndt, fixed the URL for C++2LaTeX thanks to Vinay Kumar Nallamothu, fixed the URL for C-Clearly thanks to Bill Robertson; fixed the plaintext version (the "grind" definition didn't show up there) thanks to Nimrod Zimerman)
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.7] What updates were made for the 07/99 release?
New FAQs:
Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.8] What updates were made for the 06/98 release?
New FAQs:
Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.9] What updates were made for the 05/98 release?
Global changes:
- Removed the grey background color on the HTML version. It now
displays in the Web Browser's own preferences.
New FAQs:
Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.10] What updates were made for the 09/97 release?
New FAQs:
Changed FAQs:
- [1.3] Copying Permissions
(clarified)
- [5.1] What does IMHO mean? (or IMO, IMNSHO, FWIW, OTOH, etc.)?
(added silly acronym-laden comment at the bottom (adapted from e-mail from Erik Corry)
- [16.16] But the previous FAQ's code is SOOOO tricky and error
prone! Isn't there a simpler way?
(fixed some inconsistencies between FredMatrix and Matrix thanks to Jeff Baker)
- [16.21] How do I do simple reference counting?
(fixed FredPtr's constructor thanks to Chichiang Wan)
- [23.5] What's the meaning of, Warning: Derived::f(float) hides Base::f(int)?
(rewritten with the using syntax; thanks to Matt Seitz)
- [33.5] Where can I get information about the C++ compiler
from {Borland, IBM, Microsoft, Symantec, Sun, etc.}?
(corrected the URL for Symantec C++ thanks to Michel Joly de Lotbiniere and added the URL for HP C++ thanks to David Green)
- [33.5] Where can I get information about the C++ compiler
from {Borland, IBM, Microsoft, Symantec, Sun, etc.}?
(corrected the URL for Microsoft Visual C++ thanks to Leila Rannanjarvi, and added the URL for Sun C++ thanks to Aryan Mirsepassi)
- [35.2] Are there any pretty-printers that reformat C++ source
code?
(added information about tgrind)
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.11] What updates were made for the 01/97 release?
Global changes:
- Added the (much requested!) one-click download
feature. This automagically sends you a copy of the entire FAQ so you
can browse off-line. There's a similar feature to get
a copy of the "plaintext" version of the FAQ.
- Removed those pesky "hit counters" from each HTML page.
- Added nifty forward and backward links just after each
FAQ.
- Added more nifty navigation aids at the bottom of each
page.
- Renamed section [6]
from "Management Issues" to "Big Picture Issues."
New FAQs:
Changed FAQs:
- [1.3] Copying Permissions
(simplified)
- [2.1] Where's the closest mirror site to access this document?
(removed the "USA-2" site)
- [2.2] How can I get a Copy of all the HTML files of C++ FAQ
Lite so I can read them Off-Line?
(rewrote and added a one-click feature to get .zip, .tar.Z or .tar.gz format)
- [2.3] How can I get a Copy of all the "plaintext" files of
C++ FAQ Lite so I can read them Off-Line?
(rewrote and added a one-click feature to get .zip, .tar.Z or .tar.gz format)
- [5.1] What does IMHO mean? (or IMO, IMNSHO, FWIW, OTOH, etc.)?
(added KUTGW (thanks to Bengt Richter))
- [15.6] How can I provide printing for my class Fred?
(added note about cascading operator<< calls)
- [15.8] How can I provide input for my class Fred?
(added note about cascading operator<< calls)
- [16.6] How can I convince my (older) compiler to
automatically check new to see if it returns NULL?
(fixed bugs: new handlers don't take arguments, thanks to Scott Aaron; changed set_new_hanlder to set_new_handler, thanks to Peter Andersson)
- [16.15] How do I allocate multidimensional arrays using new?
(rewritten and expanded with a rectangular-matrix case)
- [18.1] What is "const correctness"?
(rewrote because of helpful feedback from Nor Jaidi)
- [21.6] Is a Circle a kind-of an Ellipse?
(added a caveat that setSize(x,y) isn't sacred)
- [21.7] Are there other options to the "Circle is/isnot
kind-of Ellipse" dilemma?
(added a caveat that setSize(x,y) isn't sacred)
- [21.8] But I have a Ph.D. in Mathematics, and I'm
sure a Circle is a kind of an Ellipse! Does this mean Marshall Cline
is stupid? Or that C++ is stupid? Or that OO is stupid?
(added a caveat that setSize(x,y) isn't sacred)
- [23.3] When my base class's constructor calls a
virtual function, why doesn't my derived class's override of that virtual
function get invoked?
(rewrote)
- [29.8] How can I pass an object of a C++ class to/from a C
function?
(added #ifndef FRED_H / #define FRED_H to code)
- [33.5] Where can I get information about the C++ compiler
from {Borland, IBM, Microsoft, Symantec, Sun, etc.}?
(added HP C++)
- [35.4] Where can I get OS-specific questions answered (e.g.,
BC++, DOS, Windows, etc)?
(added Borland C++ URLs thanks to Simon Edlund)
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.12] What updates were made for the 11/96 release?
New FAQs:
Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.13] What updates were made for the 10/96 release?
New FAQs:
Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.14] What updates were made for the 09/96 release?
New FAQs:
Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.15] What updates were made for the 08/96 release?
Global changes:
New FAQs:
Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.16] What updates were made for the 07/96 release?
Global changes:
New FAQs:
Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.17] What updates were made for the 06/96 release?
New FAQs:
Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.18] What updates were made for the 05/96 release?
Updated everything. Transformed the source from raw text to HTML.
Reorganized, reworded, expanded, added example code, etc, etc.
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.19] What updates were made for the 04/96 release?
New FAQs:
Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.20] What updates were made for the 03/96 release?
New FAQs:
Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.21] What updates were made for the 09/95 release?
New FAQs:
Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.22] What updates were made for the 06/95 release?
New FAQs:
Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.23] What updates were made for the 04/95 release?
New FAQs:
Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.24] What updates were made for the 03/95 release?
New FAQs:
Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.25] What updates were made for the 01/95 release?
New FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.26] What updates were made for the 12/94 release?
New FAQs:
Changed FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.27] What updates were made for the 11/94 release?
New FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.28] What updates were made for the 08/94 release?
Rewrote most of the answers to provide general cleanup. Changed the quotation
marks to "..." rather than `...' and/or ``...''. Sample code lines now start
with a tab (no other lines starts with a tab). Everything was edited; minor
modifications everywhere.
New FAQs:
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
[4.29] What updates were made before 08/94?
This document was originally written in 1991. I have no record of the specific
changes that were made until 8/94.
[ Top | Bottom | Previous section | Next section | Search the FAQ ]
E-mail the author
[ C++ FAQ Lite
| Table of contents
| Subject index
| About the author
| ©
| Download your own copy ]
Revised Aug 15, 2001