Imperfect C++ : practical solutions for real-life programming /

副标题:无

作   者:Matthew Wilson = 不完美的C++ / (美)维尔逊著

分类号:

ISBN:9787115149817

微信扫一扫,移动浏览光盘

简介

  即便是c++阵营里最忠实的信徒,也不得不承认:c++语言并不完美。实际上,世界上也没有完美的编程语言。.    如何克服c++类型系统的不足?在c++中,如何利用约束、契约和断言来实施软件设计?如何处理被c++标准所忽略的动态库、静态对象以及线程等有关的问题?隐式转换有何替代方案?本书将为你一一解答这些问题。针对c++的每一个不完美之处,本书都具体地分析原因,并探讨实用的解决方案。书中也不乏许多作者创新的、你从未听说过或使用的技术,但这些确实能帮助你成为c++方面的专家。..    本书适合有一定经验的c++程序员和项目经理阅读,也适合对c++编程的一些专门或高级话题感兴趣的读者参考。       本书特色:    1.本书不仅指出了c++的缺失,更为编写健壮、灵活、高效,可维护的代码提供了实用的技术和工具。    2.本书展示了如何克服c++的复杂性,穿越c++庞大的范式阵列,夺回对代码的控制权,从而获得更理想的结果。 ...

目录

partonefundamentals

chapter1 enforcingdesign:constraints,contracts,andassertions

1.1 eggsandham

1.2 compile-timecontracts:constraints

1.3 runtimecontracts:preconditions,postconditions,andinvariants

1.4 assertions

chapter2 objectlifetime

2.1 theobjectlifecycle

2.2 controllingyourclients

2.3 milsandboon

chapter3 resourceencapsulation

3.1 ataxonomyofresourceencapsulation

3.2 podtypes

3.3 wrapperproxies

3.4 rridtypes

3.5 raiitypes

3.6 rahcoda

chapter4 dataencapsulationandvaluetypes

4.1 ataxonomyofdataencapsulation

4.2 valuetypesandentitytypes

.4.3 ataxonomyofvaluetypes

4.4 opentypes

4.5 encapsulatedtypes

4.6 valuetypes

4.7 arithmeticvaluetypes

4.8 valuetypescoda

4.9 encapsulationcoda

chapter5 objectaccessmodels

5.1 vouchedlifetimes

5.2 copiedforcaller

5.3 giventocaller

5.4 sharedobjects

chapter6 scopingclasses

6.1 value

6.2 state

6.3 apisandservices

6.4 languagefeatures

parttwosurvivingtherealworld

chapter7abi

7.1 sharingcode

7.2 cabirequirements

7.3 c++abirequirements

7.4 icancclearlynow

chapter8 objectsacrossborders

8.1 mostlyportablevtables?

8.2 portablevtables

8.3 abi/oabcoda

chapter9 dynamiclibraries

9.1 callingfunctionsexplicitly

9.2 indentity:linkunitsandlinkspace

9.3 lifetime

9.4 versioning

9.5 resourceownership

9.6 dynamiclibraries:coda

chapter10 threading

10.1 synchronizingintegeraccess

10.2 synchronizingblockaccess:criticalregions

10.3 atomicintegerperformance

10.4 multithreadingextensions

10.5 threadspecificstorage

chapter11 statics

11.1 nonlocalstaticobjects:globals

11.2 singletons

11.3 function-localstaticobjects

11.4 staticmembers

11.5 staticscoda

chapter12 optimization

12.1 inlinefunctions

12.2 returnvalueoptimization

12.3 emptybaseoptimization

12.4 emptyderivedoptimization

12.5 preventingoptimization

partthreelanguageconcerns

chapter13 fundamentaltypes

13.1 mayihaveabyte?

13.2 fixed-sizedintegertypes

13.3 largeintegertypes

13.4 dangeroustypes

chapter14 arraysandpointers

14.1 don'trepeatyourself

14.2 arraysdecayintopointers

14.3 dimensionof0

14.4 cannotpassarraystofunctions

14.5 arraysarealwayspassedbyaddress

14.6 arraysofinheritedtypes

14.7 cannothavemultidimensionalarrays

chapter15 values

15.1 null---thekeywordthatwasn't

15.2 downtozero

15.3 bendingthetruth

15.4 literals

15.5 constants

chapter16keywords

16.1 interface

16.2 temporary

16.3 owner

16.4 explicit(_cast)

16.5 unique

16.6 final

16.7 unsupportedkeywords

chapter17 syntax

17.1 classlayout

17.2 conditionalexpressions

17.3 for

17.4 variablenotation

chapter18 typedefs

18.1 pointertypedefs

18.2 what'sinadefinition?

18.3 aliases

18.4 treetypedefs

18.5 thegood,thebad,andtheugly

partfourcognizantconversions

chapter19 casts

19.1 implicitconversion

19.2 castinginc++

19.3 thecaseforccasts

19.4 castsonsteroids

19.5 explicit_cast

19.6 literal_cast

19.7 union_cast

19.8 comstl::interface_cast

19.9 boost::polymorphic_cast

19.10 casts:coda

chapter20 shims

20.1 embracingchangeandenhancingflexibility

20.2 attributeshims

20.3 logicalshims

20.4 controlshims

20.5 conversionshims

20.6 compositeshimconcepts

20.7 namespacesandkoeniglookup

20.8 whynottraits?

20.9 structuralconformance

20.10 breakingupthemonolith

20.11 shims:coda

chapter21 veneers

21.1 lightweightrah

21.2 bindingdataandoperations

21.3 rubbinguptoconcepts

21.4 veneers:coda

chapter22 bolt-ins

22.1 addingfunctionality

22.2 skinselection

22.3 nonvirtualoverriding

22.4 leveragingscope

22.5 simulatedcompile-timepolymorphism:reversebolt-ins

22.6 parameterizedpolymorphicpackaging

22.7 bolt-ins:coda

chapter23 templateconstructors

23.1 hiddencosts

23.2 danglingreferences

23.3 templateconstructorspecialization

23.4 argumentproxies

23.5 argumenttargeting

23.6 templateconstructors:coda

partfiveoperators

chapter24 operatorbool0

24.1 operatorintocoast

24.2 operatorvoid*0const

24.3 operatorbool0const

24.4 operator!()---not!

24.5 operatorbooleanconst*0const

24.6 operatorintboolean::*()const

24.7 operatingintherealworld

24.8 operator!

chapter25 fast,non-intrusivestringconcatenation

25.1 fast_string_concatenator[]

25.2 performance

25.3 workingwithotherstringclasses

25.4 concatenationseeding

25.5 pathologicalbracing

25.6 standardization

chapter26 what'syouraddress?

26.1 can'tgettherealaddress

26.2 whatactionsarecarriedoutduringconversion?

26.3 whatdowereturn?

26.4 what'syouraddress:coda

chapter27subscriptoperators

27.1 pointerconversionversussubscriptoperators

27.2 handlingerrors

27.3 returnvalue

chapter28 incrementoperators

28.1 missingpostfixoperators

28.2 efficiency

chapter29arithmetictypes

29.1 classdefinition

29.2 defaultconstruction

29.3 initialization(valueconstruction)

29.4 copyconstruction

29.5 assignment

29.6 arithmeticoperators

29.7 comparisonoperators

29.8 accessingthevalue

29.9 sinteger64

29.10 truncations,promotions,andtests

29.11 arithmetictypes:coda

chapter30short-circuit!

partsixextendingc++

chapter31returnvaluelifetime

31.1 ataxonomyofreturnvaluelifetimegotchas

31.2 whyreturn-by-reference?

31.3 solution1--integer_to_string[]

31.4 solution2--tss

31.5 solution3---extendingrvl

31.6 solution4-staticarraysizedetermination

31.7 solution5--conversionshims

31.8 performance

31.9 rvl:thebigwinforgarbagecollection

31.10 potentialapplications

31.11 returnvaluelifetime:coda

chapter32memory

32.1 ataxonomyofmemory

32.2 thebestofbothworlds

32.3 allocators

32.4 memory:coda

chapter33multidimensionalarrays

33.1 facilitatingsubscriptsyntax

33.2 sizedatruntime

33.3 sizedatcompiletime

33.4 blockaccess

33.5 performance

33.6 multidimensionalarrays:coda

chapter34 functorsandranges

34.1 syntacticclutter

34.2 for_all0?

34.3 localfunctors

34.4 ranges

34.5 functorsandranges:coda

chapter35properties

35.1 compilerextensions

35.2 implementationoptions

35.3 fieldproperties

35.4 methodproperties

35.5staticproperties

35.6 virtualproperties

35.7 propertyuses

35.8 properties:coda

appendixacompilersandlibraries

a.1 compilers

a.2 libraries

a.3 otherresources

appendixb"watchthathubris!"

b.1 operatoroverload

b.2 dryruedyesterday

b.3 paranoidprogramming

b.4 toinsanity,andbeyond!

appendixcarturius

appendixdthecd

epilogue

bibliography

index...


已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Imperfect C++ : practical solutions for real-life programming /
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    亲爱的云图用户,
    光盘内的文件都可以直接点击浏览哦

    无需下载,在线查阅资料!

    loading icon