基本语言细节--《深度探索C++对象模型》--(4)The Semantics of Function-总结点
1.Member 的各种调用方式
(1).非静态成员函数调用:
C++设计准则就是非静态函数的调用效率至少和一般的非成员函数有相同的效率。其实,编译器对C++的成员函数,进行了一系列的处理,使得最后,一个成员函数成为了一个外部函数,以extern说明,并经过name-mangling,添加额外的参数。
(2).虚拟成员函数调用:
通过由编译器产生的虚函数表指针,以及虚函数表中的slot 索引值,来关联实际的运行中的函数,进行调用;(可参照之前的文章)
(3).静态成员函数:
不需要类对象便可调用。其特性为不能直接存取类中的非静态成员,不能为const ,virtual。
(4).inline 函数:
其只是一个申请。由编译器决定是否inline.并且在扩展操作时,会带来参数求值操作以及临时性对象的管理。这些都是由编译器在内部完成的!!!故而在构造函数中不要用inline,你不知道继承层次有多深。
卧浪居士 于HUST2.13.11.20
卧浪居士