Effective C++: 55 specific ways to improve your programs and designs
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Upper Saddle River, NJ [u.a.]
Addison-Wesley
2009
|
Ausgabe: | 3. ed., 9. print. |
Schriftenreihe: | Addison-Wesley professional computing series
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XX, 297 S. graph. Darst. |
ISBN: | 0321334876 9780321334879 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV035841728 | ||
003 | DE-604 | ||
005 | 20091209 | ||
007 | t | ||
008 | 091124s2009 d||| |||| 00||| eng d | ||
020 | |a 0321334876 |9 0-321-33487-6 | ||
020 | |a 9780321334879 |9 978-0-321-33487-9 | ||
035 | |a (OCoLC)635059721 | ||
035 | |a (DE-599)BVBBV035841728 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-19 |a DE-739 | ||
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a DAT 358f |2 stub | ||
100 | 1 | |a Meyers, Scott |d 1959- |e Verfasser |0 (DE-588)113101856 |4 aut | |
245 | 1 | 0 | |a Effective C++ |b 55 specific ways to improve your programs and designs |c Scott Meyers |
250 | |a 3. ed., 9. print. | ||
264 | 1 | |a Upper Saddle River, NJ [u.a.] |b Addison-Wesley |c 2009 | |
300 | |a XX, 297 S. |b graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a Addison-Wesley professional computing series | |
650 | 0 | 7 | |a C++ |0 (DE-588)4193909-8 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a C++ |0 (DE-588)4193909-8 |D s |
689 | 0 | |5 DE-604 | |
856 | 4 | 2 | |m Digitalisierung UB Passau |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=018700026&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-018700026 |
Datensatz im Suchindex
_version_ | 1804140810021634048 |
---|---|
adam_text | Contents
Preface
xv
Acknowledgments
xvii
Introduction
ι
Chapter
1:
Accustoming Yourself to
C++ 11
Item
1:
View
C++
as a federation of languages.
11
Item
2:
Prefer consts, enums, and ¡nlines to #defines.
13
Item
3:
Use const whenever possible.
17
Item
4:
Make sure that objects are initialized before
they re used.
26
Chapter
2:
Constructors, Destructors, and
Assignment Operators
34
Item
5:
Know what functions
C++
silently writes and calls.
34
Item
6:
Explicitly disallow the use of compiler-generated
functions you do not want.
37
Item
7:
Declare destructors virtual in polymorphic
base classes.
40
Item
8:
Prevent exceptions from leaving destructors.
44
Item
9:
Never call virtual functions during construction or
destruction.
48
Item
10:
Have assignment operators return a reference to *this.
52
Item
11:
Handle assignment to self in operator^.
53
Item
12:
Copy all parts of an object.
57
Chapter
3:
Resource Management
61
Item
13:
Use objects to manage resources.
61
Item
14:
Think carefully about copying behavior in
resource-managing classes.
66
Item
15:
Provide access to raw resources in
resource-managing classes.
69
Item
16:
Use the same form in corresponding uses of new
and delete.
73
Item
17:
Store newed objects in smart pointers in standalone
statements.
75
Chapter
4:
Designs and Declarations
78
Item
18:
Make interfaces easy to use correctly and hard to
use incorrectly.
78
Item
19:
Treat class design as type design.
84
Item
20:
Prefer pass-by-reference-to-const to pass-by-value.
86
Item
21 :
Don t try to return a reference when you must
return an object.
90
Item
22:
Declare data members private.
94
Item
23:
Prefer non-member non-friend functions to
member functions.
98
Item
24:
Declare non-member functions when type
conversions should apply to all parameters.
102
Item
25:
Consider support for a non-throwing swap.
106
Chapter
5:
Implementations
из
Item
26:
Postpone variable definitions as long as possible.
113
Item
27:
Minimize casting.
116
Item
28:
Avoid returning handles to object internals.
123
Item
29:
Strive for exception-safe code.
127
Item
30:
Understand the ins and outs of inlining.
134
Item
31:
Minimize compilation dependencies between files.
140
Chapter
6:
Inheritance and Object-Oriented Design
149
Item
32:
Make sure public inheritance models is-a.
150
Item
33:
Avoid hiding inherited names.
156
Item
34:
Differentiate between inheritance of interface and
inheritance of implementation.
161
Item
35:
Consider alternatives to virtual functions.
169
Item
36:
Never redefine an inherited non-virtual function.
178
Item
37:
Never redefine a function s inherited default
parameter value.
180
Item
38:
Model has-a or is-implemented-in-terms-of
through composition.
184
Item
39:
Use private inheritance judiciously.
187
Item
40:
Use multiple inheritance judiciously.
192
Chapter
7:
Templates and Generic Programming
199
Item
41 :
Understand implicit interfaces and compile-time
polymorphism.
199
Item
42:
Understand the two meanings of typename.
203
Item
43:
Know how to access names in templatized
base classes.
207
Item
44:
Factor parameter-independent code out of templates.
212
Item
45:
Use member function templates to accept
all compatible types
. 218
Item
46:
Define non-member functions inside templates
when type conversions are desired.
222
Item
47:
Use traits classes for information about types.
226
Item
48:
Be aware of template metaprogramming.
233
Chapter
8:
Customizing new and delete
239
Item
49:
Understand the behavior of the new-handler.
240
Item
50:
Understand when it makes sense to replace new
and delete.
247
Item
51:
Adhere to convention when writing new and delete.
252
Item
52:
Write placement delete if you write placement new.
256
Chapter
9:
Miscellany
262
Item
53:
Pay attention to compiler warnings.
262
Item
54:
Familiarize yourself with the standard library,
including TR1.
263
Item
55:
Familiarize yourself with Boost.
269
Appendix A: Beyond Effective
C++ 273
Appendix B: Item Mappings Between Second
and Third Editions
277
Index
280
|
any_adam_object | 1 |
author | Meyers, Scott 1959- |
author_GND | (DE-588)113101856 |
author_facet | Meyers, Scott 1959- |
author_role | aut |
author_sort | Meyers, Scott 1959- |
author_variant | s m sm |
building | Verbundindex |
bvnumber | BV035841728 |
classification_rvk | ST 250 |
classification_tum | DAT 358f |
ctrlnum | (OCoLC)635059721 (DE-599)BVBBV035841728 |
discipline | Informatik |
edition | 3. ed., 9. print. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01380nam a2200361 c 4500</leader><controlfield tag="001">BV035841728</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20091209 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">091124s2009 d||| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0321334876</subfield><subfield code="9">0-321-33487-6</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780321334879</subfield><subfield code="9">978-0-321-33487-9</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)635059721</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV035841728</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakwb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-19</subfield><subfield code="a">DE-739</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 358f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Meyers, Scott</subfield><subfield code="d">1959-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)113101856</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Effective C++</subfield><subfield code="b">55 specific ways to improve your programs and designs</subfield><subfield code="c">Scott Meyers</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">3. ed., 9. print.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Upper Saddle River, NJ [u.a.]</subfield><subfield code="b">Addison-Wesley</subfield><subfield code="c">2009</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XX, 297 S.</subfield><subfield code="b">graph. Darst.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">Addison-Wesley professional computing series</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">C++</subfield><subfield code="0">(DE-588)4193909-8</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">C++</subfield><subfield code="0">(DE-588)4193909-8</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Passau</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=018700026&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-018700026</subfield></datafield></record></collection> |
id | DE-604.BV035841728 |
illustrated | Illustrated |
indexdate | 2024-07-09T22:05:53Z |
institution | BVB |
isbn | 0321334876 9780321334879 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-018700026 |
oclc_num | 635059721 |
open_access_boolean | |
owner | DE-19 DE-BY-UBM DE-739 |
owner_facet | DE-19 DE-BY-UBM DE-739 |
physical | XX, 297 S. graph. Darst. |
publishDate | 2009 |
publishDateSearch | 2009 |
publishDateSort | 2009 |
publisher | Addison-Wesley |
record_format | marc |
series2 | Addison-Wesley professional computing series |
spelling | Meyers, Scott 1959- Verfasser (DE-588)113101856 aut Effective C++ 55 specific ways to improve your programs and designs Scott Meyers 3. ed., 9. print. Upper Saddle River, NJ [u.a.] Addison-Wesley 2009 XX, 297 S. graph. Darst. txt rdacontent n rdamedia nc rdacarrier Addison-Wesley professional computing series C++ (DE-588)4193909-8 gnd rswk-swf C++ (DE-588)4193909-8 s DE-604 Digitalisierung UB Passau application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=018700026&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Meyers, Scott 1959- Effective C++ 55 specific ways to improve your programs and designs C++ (DE-588)4193909-8 gnd |
subject_GND | (DE-588)4193909-8 |
title | Effective C++ 55 specific ways to improve your programs and designs |
title_auth | Effective C++ 55 specific ways to improve your programs and designs |
title_exact_search | Effective C++ 55 specific ways to improve your programs and designs |
title_full | Effective C++ 55 specific ways to improve your programs and designs Scott Meyers |
title_fullStr | Effective C++ 55 specific ways to improve your programs and designs Scott Meyers |
title_full_unstemmed | Effective C++ 55 specific ways to improve your programs and designs Scott Meyers |
title_short | Effective C++ |
title_sort | effective c 55 specific ways to improve your programs and designs |
title_sub | 55 specific ways to improve your programs and designs |
topic | C++ (DE-588)4193909-8 gnd |
topic_facet | C++ |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=018700026&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT meyersscott effectivec55specificwaystoimproveyourprogramsanddesigns |