member function虽然含在每个class object之内,却不出现在object之中。每一个non-inline member function只会诞生一个函数实例。inline function则会在其每一个使用者(模块)身上产生一个函数实例。(函数体的替换)
封装并未带来任何空间或执行期的不良后果。C++在布局以及存取时间上的主要的额外负担是由virtual引起的,包括:
1. virtual function机制 用以支持一个有效率的“执行期绑定”(runtime binding);
2. virtual base class 用以实现“多次出现在继承体系中的base class,有一个单一而被共享的实例”.
此外还有一些多重继承下的额外负担,发生在“一个derived class 和其第二或后继之base class的转换”之间。然而,一般而言,并没有什么天生的理由说C++程序一定比其C兄弟庞大或迟缓。
加上封装后的布局成本
最新推荐文章于 2020-12-13 11:03:00 发布
4691

被折叠的 条评论
为什么被折叠?



