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
2005
|
Ausgabe: | 3. ed. |
Schriftenreihe: | Addison-Wesley professional computing series
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | Hier auch später erschienene, unveränderte Nachdrucke |
Beschreibung: | XX, 297 S. Ill. |
ISBN: | 0321334876 9780321334879 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV019758418 | ||
003 | DE-604 | ||
005 | 20150204 | ||
007 | t | ||
008 | 050405s2005 a||| |||| 00||| eng d | ||
020 | |a 0321334876 |9 0-321-33487-6 | ||
020 | |a 9780321334879 |9 978-0-321-33487-9 | ||
035 | |a (OCoLC)60425273 | ||
035 | |a (DE-599)BVBBV019758418 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-29T |a DE-384 |a DE-898 |a DE-1051 |a DE-83 |a DE-11 |a DE-19 |a DE-473 |a DE-Aug4 |a DE-863 |a DE-91G |a DE-188 | ||
050 | 0 | |a QA76.73.C153 | |
082 | 0 | |a 005.13/3 |2 22 | |
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a 68N15 |2 msc | ||
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. | ||
264 | 1 | |a Upper Saddle River, NJ [u.a.] |b Addison-Wesley |c 2005 | |
300 | |a XX, 297 S. |b Ill. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a Addison-Wesley professional computing series | |
500 | |a Hier auch später erschienene, unveränderte Nachdrucke | ||
650 | 4 | |a C++ (Langage de programmation) | |
650 | 4 | |a C++ (Computer program language) | |
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 HEBIS Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=013084811&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-013084811 |
Datensatz im Suchindex
DE-BY-863_location | 1340 |
---|---|
DE-BY-FWS_call_number | 1340/ST 250 C01 M613 E2(3)st |
DE-BY-FWS_katkey | 493013 |
DE-BY-FWS_media_number | 083101252154 |
_version_ | 1806176542139613184 |
adam_text | Effective C++
Third Edition
55 Specific Ways to Improve Your Programs and Designs
Scott Meyers
A
VT
ADDISON-WESLEY
Upper Saddle River, NJ • Boston • Indianapolis • San Francisco
New York • Toronto • Montreal • London • Munich • Paris • Madrid
Capetown • Sydney • Tokyo • Singapore • Mexico City
Contents
Preface xv
Acknowledgments xvü
Introduction l
Chapter 1: Accustoming Yourself to C++ 11
Item 1: View C++ as a federation of languages 11
Item 2: Prefer consts, enums, and inlines 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
Contents
Preface xv
Acknowledgments xvü
Introduction l
Chapter 1: Accustoming Yourself to C++ 11
Item 1: View C++ as a federation of languages 11
Item 2: Prefer consts, enums, and inlines 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
xii
Contents
Effective C++
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 113
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
Effective C++ Contents xiii
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-handier 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
|
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 | BV019758418 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.73.C153 |
callnumber-search | QA76.73.C153 |
callnumber-sort | QA 276.73 C153 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 250 |
classification_tum | DAT 358f |
ctrlnum | (OCoLC)60425273 (DE-599)BVBBV019758418 |
dewey-full | 005.13/3 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.13/3 |
dewey-search | 005.13/3 |
dewey-sort | 15.13 13 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
edition | 3. ed. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01686nam a2200433 c 4500</leader><controlfield tag="001">BV019758418</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20150204 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">050405s2005 a||| |||| 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)60425273</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV019758418</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-29T</subfield><subfield code="a">DE-384</subfield><subfield code="a">DE-898</subfield><subfield code="a">DE-1051</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-19</subfield><subfield code="a">DE-473</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-863</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-188</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.73.C153</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.13/3</subfield><subfield code="2">22</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">68N15</subfield><subfield code="2">msc</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.</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">2005</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XX, 297 S.</subfield><subfield code="b">Ill.</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="500" ind1=" " ind2=" "><subfield code="a">Hier auch später erschienene, unveränderte Nachdrucke</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">C++ (Langage de programmation)</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">C++ (Computer program language)</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">HEBIS Datenaustausch</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=013084811&sequence=000001&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-013084811</subfield></datafield></record></collection> |
id | DE-604.BV019758418 |
illustrated | Illustrated |
indexdate | 2024-08-01T11:22:58Z |
institution | BVB |
isbn | 0321334876 9780321334879 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-013084811 |
oclc_num | 60425273 |
open_access_boolean | |
owner | DE-29T DE-384 DE-898 DE-BY-UBR DE-1051 DE-83 DE-11 DE-19 DE-BY-UBM DE-473 DE-BY-UBG DE-Aug4 DE-863 DE-BY-FWS DE-91G DE-BY-TUM DE-188 |
owner_facet | DE-29T DE-384 DE-898 DE-BY-UBR DE-1051 DE-83 DE-11 DE-19 DE-BY-UBM DE-473 DE-BY-UBG DE-Aug4 DE-863 DE-BY-FWS DE-91G DE-BY-TUM DE-188 |
physical | XX, 297 S. Ill. |
publishDate | 2005 |
publishDateSearch | 2005 |
publishDateSort | 2005 |
publisher | Addison-Wesley |
record_format | marc |
series2 | Addison-Wesley professional computing series |
spellingShingle | Meyers, Scott 1959- Effective C++ 55 specific ways to improve your programs and designs C++ (Langage de programmation) C++ (Computer program language) 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++ (Langage de programmation) C++ (Computer program language) C++ (DE-588)4193909-8 gnd |
topic_facet | C++ (Langage de programmation) C++ (Computer program language) C++ |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=013084811&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT meyersscott effectivec55specificwaystoimproveyourprogramsanddesigns |
Inhaltsverzeichnis
Würzburg Teilbibliothek SHL, Raum I.2.11
Signatur: |
1340 ST 250 C01 M613 E2(3)st |
---|---|
Exemplar 1 | nicht ausleihbar Verfügbar |