1.045.741

kiadvánnyal nyújtjuk Magyarország legnagyobb antikvár könyv-kínálatát

A kosaram
0
MÉG
5000 Ft
a(z) 5000Ft-os
szállítási
értékhatárig

C++ kódolási szabályok

Szerző
Fordító
Lektor

Kiadó: Kiskapu Kft.
Kiadás helye: Budapest
Kiadás éve:
Kötés típusa: Ragasztott papírkötés
Oldalszám: 223 oldal
Sorozatcím:
Kötetszám:
Nyelv: Magyar  
Méret: 23 cm x 18 cm
ISBN: 963-9301-93-0
Értesítőt kérek a kiadóról

A beállítást mentettük,
naponta értesítjük a beérkező friss
kiadványokról
A beállítást mentettük,
naponta értesítjük a beérkező friss
kiadványokról

Fülszöveg

A következetes kódolási szabályok javítják a programok színvonalát, elősegítik a csapatmunkát, csökkentik a piacra kerülési és a jelentéktelen feladatokra vesztegetett időt, és leegyszerűsítik a karbantartást. Ebben a könyvben a Föld két legnagyobb tiszteletnek örvendő C++-szakértője a világ C++-közösségének együttes tapasztalatát olyan kódolási szabályrendszerré gyúrta össze, amelyet minden fejlesztő képes megérteni és a saját szabályrendszere alapjaként alkalmazni. A szerzők gyakorlatilag a C++ programozás minden szempontját lefedik: tervezési és kódolási stílus, függvények, műveletek, osztálytervezés, öröklés, létrehozás-megszüntetés, másolás, hozzárendelés, névterek, modulok, sablonok, általánosítás, kivételek, STL tárolók és algoritmusok, és még sok minden más. Minden szabály leírása tömör, gyakorlati példákkal kiegészített. A könyv a típusmeghatározástól kezdve a hibakezelésig a C++ legjobb alkalmazásai módjait tartalmazza, és olyan módszereket is bemutat, amelyeket lehet,... Tovább

Fülszöveg

A következetes kódolási szabályok javítják a programok színvonalát, elősegítik a csapatmunkát, csökkentik a piacra kerülési és a jelentéktelen feladatokra vesztegetett időt, és leegyszerűsítik a karbantartást. Ebben a könyvben a Föld két legnagyobb tiszteletnek örvendő C++-szakértője a világ C++-közösségének együttes tapasztalatát olyan kódolási szabályrendszerré gyúrta össze, amelyet minden fejlesztő képes megérteni és a saját szabályrendszere alapjaként alkalmazni. A szerzők gyakorlatilag a C++ programozás minden szempontját lefedik: tervezési és kódolási stílus, függvények, műveletek, osztálytervezés, öröklés, létrehozás-megszüntetés, másolás, hozzárendelés, névterek, modulok, sablonok, általánosítás, kivételek, STL tárolók és algoritmusok, és még sok minden más. Minden szabály leírása tömör, gyakorlati példákkal kiegészített. A könyv a típusmeghatározástól kezdve a hibakezelésig a C++ legjobb alkalmazásai módjait tartalmazza, és olyan módszereket is bemutat, amelyeket lehet, hogy még azok sem ismernek, akik már évek óta használják a C++-t. Menet közben az alábbiakhoz hasonló kérdésekre kapunk válaszokat:
• Mit éri meg szabványosítani és mit nem?
• Hogyan lehet a legjobban méretezhető kódot készíteni?
• Mik az ésszerű hibakezelési eljárás elemei?
• Hogyan (és miért) kell elkerülni a fölösleges értékadás-, ciklus- és meghatározás-függőséget?
• Mikor (és hogyan) kell a statikus és dinamikus többalakúságot együtt alkalmazni?
• Hogyan kell „biztonságos" felülírást alkalmazni?
• Mikor kell hibamentes csereterületet biztosítani?
• Miért és hogyan kell megakadályozni, hogy a kivételek a modulok határain túlra terjedjenek?
• Miért nem szabad a névtérbevezetéseket és -utasításokat fejállományba írni?
• Miért kell a tömbök helyett STL vector-t és string-et használni?
• Hogyan kell kiválasztani a megfelelő STL keresést vagy rendezési algoritmust?
• Milyen szabályokat kell követni, hogy biztosítsuk a típusbiztos kódolást? Akár egyedül, akár másokkal dolgozunk, a C++ kódolási szabályok segítségével tisztább kódokat írhatunk - gyorsabban, kevesebb hibával és kudarccal. Vissza

Tartalom

Előszó xi
Szerkezet és irányelvek 1
0. Ne kínlódjunk a kis dolgokkal (avagy: Tudjuk, mit ne szabványosítsunk) 2
1. Fordítsunk tisztán és magas figyelmeztetési szinten 4
2. Használjunk automatizált építőrendszert 7
3. Használjunk változatkövető rendszert 8
4. Fordítsunk kellő figyelmet a kód felülvizsgálatára 9
Tervezési stílus 11
5. Legyen egyértelmű minden egyed felelősségi köre 12
6. Helyesség, egyszerűség és tisztaság mindenekelőtt 13
7. Tudjuk, mikor és hogyan kell méretezhető kódot írni 14
8. Kerüljük a korai optimalizálást 16
9. Kerüljük a korai pesszimizálást 18
10. Kerüljük a globális és a megosztott adatokat 19
11. Rejtsük el az adatokat 20
12. Tudjuk, mikor és hogyan írjunk párhuzamos kódot 22
13. Adjuk az erőforrásokat az objektumok tulajdonába.
Használjunk kifejezett RAII-t és okos mutatókat 25
Kódolási stílus 27
14. A futásidejű hibák helyett válasszuk inkább a fordítási és
összeszerkesztési idejű hibákat 28
15. Használjuk a const kulcsszót 29
16. Kerüljük a makrókat 31
17. Kerüljük a varázsszámokat 33
18. Korlátozzuk a változók láthatóságát 34
19. Mindig adjunk kezdőértéket a változóknak 35
20. Kerüljük a hosszú függvényeket. Kerüljük a mély beágyazást 37
21. A kezdőérték beállítása ne függjön más fordítási egységektől 38
22. Kerüljük az egymástól függő meghatározásokat.
Kerüljük a körkörös függőségeket 39
23. Tegyük a fejlécfájlokat önállóvá 41
24. Mindig írjunk belső include őröket
Soha ne írjunk külső include őröket 42
Függvények és műveletek 45
25. A paramétereket megfelelően vegyük át érték,
(okos) mutató vagy hivatkozás szerint 46
26. Tartsuk meg a túlterhelt műveletek természetes jelentését 47
27. Részesítsük előnyben az aritmetikai
és értékadó műveletek kanonikus alakját 48
28. Részesítsük előnyben a ++ és a - kanonikus alakját.
Törekedjünk az előtag alakok meghívására 50
29. Mérlegeljük a túlterhelést a rejtett típusátalakítás elkerülése végett 51
30. Kerüljük a &&, a I I és a , (vessző) túlterhelését 52
31. Ne írjunk olyan kódot, ami a függvényparaméterek kiértékelésének
sorrendjétől függ 54
Osztálytervezés és öröklődés
32. Legyünk tudatában annak, hogy milyen osztályt írunk 58
33. Monolitikus osztályok helyett használjunk minimális osztályokat 59
34. Öröklés helyett alkalmazzunk összeállítást 60
35. Kerüljük az olyan osztályoktól való öröklést, amelyeket
nem alaposztálynak terveztek 62
36. Törekedjünk elvont felületeket biztosítani 64
37. A nyilvános öröklés felcserélhetőséget jelent.
Az öröklés célja nem az újrahasznosítás, hanem az újrahasznosíthatóság .. 66
38. Gyakoroljuk a biztonságos felülírást 68
39. Tegyük nem nyilvánossá a virtuális függvényeket,
a nyilvános függvényeket pedig nem-virtuálissá 71
40. Kerüljük a rejtett átalakítások alkalmazását 73
41. Tegyük priváttá az adattagokat, kivéve a viselkedés nélküli
aggregátumokat (C stílusú adatszerkezeteket) 75
42. Ne szolgáltassuk ki belső adatainkat 77
43. Használjuk megfontoltan a Pimpl kifejezést 79
44. Törekedjünk nem-tag, nem-barát függvények írására 83
45. A new és delete műveleteket mindig együtt adjuk meg 84
46. Ha bármilyen osztályra jellemző new műveletet biztosítunk, adjuk meg
az összes szabványos alakot (egyszerű, helyben kifejtett és nem-dobó) ... 86
Létrehozás, megsemmisítés és másolás 89
47. A tagváltozók meghatározásakor és létrehozásakor mindig ugyanazt a sorrendet kövessük 90
48. Az értékadás helyett válasszuk a közvetlen létrehozást 91
49. Kerüljük a virtuális függvények hívását a konstruktorokban
és a destruktorokban 92
50. Az alaposztály destruktora legyen nyilvános és virtuális, vagy
védett és nem virtuális 94
51. A destruktorok, a felszabadítás és a swap sohasem hibázhat 95
52. Legyünk következetesek a másolásnál és a megsemmisítésnél 93
53. Kifejezetten engedélyezzük vagy tiltsuk meg a másolást 99
54. Kerüljük a szeletelést. Az alaposztályokban másolás helyett
inkább kiónozzunk 100
55. Használjuk az értékadás kanonikus alakját 103
56. Ha van értelme, készítsünk swap függvényt (de írjuk meg jól) 104
Névterek és modulok 107
57. Tartsuk a típusokat és a nem tag függvények felületét
ugyanabban a névtérben 108
58. Tartsuk a típusokat és a függvényeket különböző névtérben,
kivéve ha ténylegesen együtt kell működniük egymással 109
59. A fejlécfájlokban és az include előtt soha ne használjunk
névteres using utasításokat 111
60. Igyekezzünk abban a modulban felszabadítani a memóriát,
amelyikben lefoglaltuk 114
61. Ne hozzunk létre kötődéssel rendelkező elemeket a fejlécfájlban 115
62. Ne engedjük, hogy a kivételek áttörjenek a modulhatárokon 117
63. A modulok felületében igyekezzünk hordozható típusokat használni 118
Sablonok és általánosítás 121
64. Körültekintően keverjük a statikus és dinamikus többalakúságot 122
65. A testreszabást tudatosan és nyíltan végezzük 124
66. Ne szakosítsuk a függvénysablonokat 128
67. Ne írjunk szándékunk ellenére nem általános kódot 130
Hibakezelés és kivételek 133
68. Használjunk állításokat a belső feltételezések és invariánsok jelzésére 134
69. Alakítsunk ki ésszerű hibakezelési eljárást, és kövessük azt szigorúan 136
70. Különböztessük meg, hogy mi hiba, és mi nem az 138
71. írjunk hibabiztos kódot 141
72. Lehetőleg kivételeket használjunk a hibák jelzésére 144
73. A kivételek átadása érték, az elkapásuk hivatkozás alapján történjen 148
74. Jelentsük, kezeljük és fordítsuk le a hibákat megfelelően 149
75. Kerüljük a kivételleírásokat 150
STL: tárolók 153
76. Az alapértelmezés mindig a vector legyen.
Más esetekben válasszunk egy megfelelő tárolót 154
77. Használjunk vector és string típust tömbök helyett 156
78. Használjunk vector-t (és a string: :c_str kifejezést)
a nem C++ API-kkal való adatcseréhez 157
79. A tárolókban csak értékeket és okos mutatókat tároljunk 158
80. A sorozatok bővítéséhez használjuk a pushjback-et
a többi módszer helyett 159
81. Az egyelemű műveletek helyett használjunk tartományműveleteket 160
82. Használjuk az elfogadott kifejezéseket a befogadóképesség
tényleges csökkentésére és az elemek tényleges törlésére 161
STL: algoritmusok 163
83. Ellenőrzött STL-megvalósítást alkalmazzunk 164
84. Saját ciklusok helyett használjunk algoritmushívásokat 166
85. Használjuk a megfelelő STL keresőalgoritmust 169
86. Használjuk a megfelelő STL rendezőalgoritmust 170
87. Tegyük a feltételeket tiszta függvényekké 172
88. Függvények helyett használjunk függvényobjektumokat az algoritmusok
és az összehasonlítások argumentumaiként 174
89. Helyesen írjuk meg a függvényobjektumokat 176
Típusbiztonság 179
90. Kerüljük a típusváltást; részesítsük előnyben a többalakúságot 180
91. A típusokra hagyatkozzunk, ne az ábrázolásra 182
92. Kerüljük a reinterpret_cast használatát 183
93. Kerüljük a static_cast mutatókra való alkalmazását 184
94. Ne vessük el a const-ot 185
95. Ne használjunk C stílusú átalakításokat 187
96. A nem POD szerkezeteknél ne használjuk a memcpy-t és a memcmp-t 189
97. Ne használjunk uniót az ábrázolás átértékelésére 190
98. Ne használjunk varargokat 191
99. Ne használjunk érvénytelen objektumokat
Ne használjunk nem biztonságos függvényeket 192
100. Ne kezeljük a tömböket többalakúként 193
Összefoglalások összefoglalása 195
Megvásárolható példányok

Nincs megvásárolható példány
A könyv összes megrendelhető példánya elfogyott. Ha kívánja, előjegyezheti a könyvet, és amint a könyv egy újabb példánya elérhető lesz, értesítjük.

Előjegyzem