C++中类的成员函数及内联函数使用及说明
JYT618 人气:1成员函数
即在类内定义的方法。通过对象名.成员函数()的方式可以调用。
一般将成员函数定义在类外,因为成员函数一般比较复杂。
简单的成员函数可以定义在类内,定义在类外的方式如下所示:
成员函数中出现的参数
对于成员函数中出现的参数,首先先在成员函数内部查找其声明,如在成员函数内没找到,则在类内寻找,类内所有权限的成员都可以被考虑,即使声明部分出现在函数的使用之后。
如果类内也没有找到,则再到成员函数定义之前的作用域继续寻找。
类相关的非成员函数
这些非成员函数属于类的接口组成部分,但其实际上不属于类本身。
这些函数一般不定义在类中。他们一般和类的声明放在一起,保存在同一个头文件中。
用户如果要使用其中任一一个函数只需要调用该头文件即可。
自己定义的对象作为函数的形参
在类内也可以使用自己的类定义变量。也可以让另一个类定义的变量作为属性。
在一个类中,类内的属性都是已知的。
成员函数返回值是对象的引用
如果成员函数的返回值是对象的引用的话,则其实返回的就是调用该成员函数的对象本身。
而如果返回值类型是对象的话,那么返回的就是对调用该成员函数的对象的一个拷贝。
后续对其进行的更改只是更改该副本的值,不能改变原对象。
成员函数调用成员函数
当成员函数调用成员函数时,this指针会在两个函数之间隐式地传递。
内联函数
使用内联机制的函数称为内联函数。
一般的函数在调用时,会先保存寄存器,并在返回时恢复,并且需要拷贝实参,程序需要在新的位置进行。这一过程效率较低。对于规模小、需要频繁调用的函数,例如在类内定义的成员函数,调用一个函数的时间开销远远大于小规模函数体中全部语句的执行时间,这种机制并不合适。
对此,C++系统会自动将它们作为内置(inline)函数来处理。程序调用内联函数时,并不是真正地执行函数的调用过程(如保留返回地址等处理),而是把函数代码嵌入程序的调用点。这样可以大大减少调用成员函数的时间开销。
当然,太复杂的函数不会作为内联函数。
是否作为内联函数由编译器自己决定,对类内定义的成员函数,可以省略inline,因为这些成员函数已被隐含地指定为内置函数。
若是在函数外定义,则可以在前面写inline
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
加载全部内容