正在加载图片...
深度探索C+-对象模型( inside the c++ Object Model) 对象模型的底层实现机制,在语音层面上是看不出来的—虽然对象模型的 语意本身可以使得些实现品(缃译器:比其它实现品更接近白然。例虹,ⅵ rusal unct o: 1 calls,-般而言是通过一个表榨(内含 virtua functions地址)的素引 决议得知,一定要使用如此的 virtual table吗?不,编译器可以自白引进其它任 何变通做法。如果使用 v rua] table,那么其布局、在取方法、产生时机以及数百 个细节也都必须决定下来,所有决定也都由每一个实现品(编译器)自行取舍 不过,既然说到这里,我也必须明确告诉你,日前所有编译器对于 virtual function 的实现法都是使用谷个 class专属的wi; ual able:人小固定,并且在程序火行前 就构造好了。 如果C++对象模型的底层材制并未标准化,那么你可能会问:何必探讨它 呢?主要的理由是,我的经验告诉我,如果一个程序员了解底层实现模型,他就 能够写出效率较高的代码,自信心也匕绞高,一个人不应该用猜的方式,或是等 待某大师的宣判,才确定“何时提供一个 coPy cOstructor而何时不需要”,这类 问题的解答应该来自于我们自身对于对象模型的了解 雩这本书的第二个理由是为了消除我们对于C++语言(及其对面向对象的 支捋的各种错误认识、下面段话录自我收到的封信,来信者希望将C++ 引进其程序环境中 戎和一群人一起工作,他们过去不曾写过(或完全不熟悉)C++和O0O.其 中一位工程帅从1985年就升始写C了,他强烈地认为C++兵对那些 user-tyre 序才好用,对 server程序却不理想,他说如果要写一个快速而有效率的数据库 引擎,应该使用C而非C艹.他认为C++庞大又迟缓 C+当然并不是天生地庞大又迟缓,但我发现这似乎成为C程序员的 共识.然而,光是这么说并不足以使人信服,何况我又被认为是C+的“代言 人”·这杰书就是企图极尽可熊地将各式各样的 ODject facilities(如 inheritance virtual functions、指向 class menbers的指针……)所带来的额外负有说个清楚
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有