使用宏比使用函数,可以获得更高的效率。 哪些地方会使用这种技巧? 调用次数很多的地方,通过减少函数调用,来提升性能?
使用inline,经过编译之后也没有函数调用? 这个和宏有什么区别? 宏是编译之前的预处理,那么inline是什么处理呢?
加上封装后的布局(Layout Costs for Adding Encapsulation)
一般情况下不会产生负担。
data member直接含在class object之中,就像C struct的情况一样。
而member function虽然含在class声明之内,却不出现在object之中,
每一个non-inline member function只会诞生一个函数实体。
而inline function则会在其每一个使用者(模块)身上产生一个函数实体。
virtual function 机制:
用以支持一个有效率的"执行期绑定"。 (runtime binding)
virtual base class 机制: 实现多次出现在继承体系中的base class,
有一个单一而被共享的实体。
还有一些多重继承下的额外负担
一般而言,并没有天生的理由说C++程序一定比C兄弟庞大或迟缓
posted on 2009-09-02 23:54
thinke365 阅读(88)
评论(0) 编辑 收藏 引用 所属分类:
object model