(Click here for a personal note from Marshall Cline.)
C++ FAQ
/
Section 10
/ FAQ 10.19
Section 10:
10.1
What's the deal with constructors?
10.2
Is there any difference between
List x;
and
List x();
?
10.3
Can one constructor of a class call another constructor of the same class to initialize the
this
object?
Updated!
10.4
Is the default constructor for
Fred
always
Fred::Fred()
?
10.5
Which constructor gets called when I create an array of
Fred
objects?
10.6
Should my constructors use "initialization lists" or "assignment"?
10.7
Should you use the
this
pointer in the constructor?
10.8
What is the "Named Constructor Idiom"?
10.9
Does return-by-value mean extra copies and extra overhead?
10.10
Does the compiler optimize returning a local variable by value?
10.11
Why can't I initialize my
static
member data in my constructor's initialization list?
10.12
Why are classes with
static
data members getting linker errors?
10.13
Can I add
=
initializer
;
to the declaration of a class-scope
static
const
data member?
10.14
What's the "
static
initialization order fiasco"?
10.15
How do I prevent the "
static
initialization order fiasco"?
10.16
Why doesn't the construct-on-first-use idiom use a static object instead of a static pointer?
10.17
How do I prevent the "
static
initialization order fiasco" for my
static
data members?
10.18
Do I need to worry about the "
static
initialization order fiasco" for variables of built-in/intrinsic types?
10.19
How can I handle a constructor that fails?
10.20
What is the "Named Parameter Idiom"?
10.21
Why am I getting an error after declaring a
Foo
object via
Foo x(Bar())
?
10.22
What is the purpose of the
explicit
keyword?
[10.19] How can I handle a constructor that fails?
Throw an exception. See
[17.8]
for details.