Inside The C++ Object Model(四)函数语意学

本文详细介绍了C++中成员函数的各类调用方式及其特点,包括非静态成员函数、虚拟成员函数、静态成员函数及内联函数等,并探讨了它们的实现机制与性能表现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 Member的各种调用方式:

(1)C++支持三种member functions:static、nostatic和static。

(2)Nonstatic成员函数的调用:

*nonstatic member function至少必须和一般的nonmember function有相同的效率。

*编译器内部把"member函数实体"转换为对等的"nonmember 函数实体"。

(3)virtual Member Function:

*例如:ptr->fun1()将内部转化为:(*ptr->vptr[1])(ptr)。这里假设fun1在虚表中第1个索引处。

(4)static member functions:

1.static成员函数的主要特性是:没有this指针。源于主要特性的次要特性有:

*它不能直接存取类中的nonstatic data。

*不能被声明为const、volatile或virtual。

*不需要经由class object调用-虽然大部分它是这样被调用的。


二 Vitual Member Functions(非常重要):

*详见C++虚函数文件。


三 函数性能

四 指向Member Function的指针。

五 Inline Functions:

(1)关键字inline只是一个请求,编译器有复杂的计算方法(执行成本),来决定一个函数是否变成inline。

(2)inlie是#define的一个安全替代品。

(3)一个inline函数被调用太多次会产生大量的扩展码,使程序的大小暴涨。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值