C++中类的成员函数及内联函数使用及说明

 更新时间:2022年11月25日 08:44:13   作者:JYT618  
这篇文章主要介绍了C++中类的成员函数及内联函数使用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

成员函数

即在类内定义的方法。通过对象名.成员函数()的方式可以调用。

一般将成员函数定义在类外,因为成员函数一般比较复杂。

简单的成员函数可以定义在类内,定义在类外的方式如下所示:

成员函数中出现的参数

对于成员函数中出现的参数,首先先在成员函数内部查找其声明,如在成员函数内没找到,则在类内寻找,类内所有权限的成员都可以被考虑,即使声明部分出现在函数的使用之后。

如果类内也没有找到,则再到成员函数定义之前的作用域继续寻找。

类相关的非成员函数

这些非成员函数属于类的接口组成部分,但其实际上不属于类本身。

这些函数一般不定义在类中。他们一般和类的声明放在一起,保存在同一个头文件中。

用户如果要使用其中任一一个函数只需要调用该头文件即可。

自己定义的对象作为函数的形参

在类内也可以使用自己的类定义变量。也可以让另一个类定义的变量作为属性。

在一个类中,类内的属性都是已知的。

成员函数返回值是对象的引用

如果成员函数的返回值是对象的引用的话,则其实返回的就是调用该成员函数的对象本身。

而如果返回值类型是对象的话,那么返回的就是对调用该成员函数的对象的一个拷贝。

后续对其进行的更改只是更改该副本的值,不能改变原对象。

成员函数调用成员函数

当成员函数调用成员函数时,this指针会在两个函数之间隐式地传递。

内联函数

使用内联机制的函数称为内联函数。

一般的函数在调用时,会先保存寄存器,并在返回时恢复,并且需要拷贝实参,程序需要在新的位置进行。这一过程效率较低。对于规模小、需要频繁调用的函数,例如在类内定义的成员函数,调用一个函数的时间开销远远大于小规模函数体中全部语句的执行时间,这种机制并不合适。

对此,C++系统会自动将它们作为内置(inline)函数来处理。程序调用内联函数时,并不是真正地执行函数的调用过程(如保留返回地址等处理),而是把函数代码嵌入程序的调用点。这样可以大大减少调用成员函数的时间开销。

当然,太复杂的函数不会作为内联函数。

是否作为内联函数由编译器自己决定,对类内定义的成员函数,可以省略inline,因为这些成员函数已被隐含地指定为内置函数。

若是在函数外定义,则可以在前面写inline

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C++之string类对象的容量操作详解

    C++之string类对象的容量操作详解

    通过在网站上的资料搜集,得到了很多关于string类对象的容量操作,通过对这些资料的整理和加入一些自己的代码,希望能够给你带来帮助
    2021-08-08
  • C++ 控制台弹出文件管理对话框案例

    C++ 控制台弹出文件管理对话框案例

    这篇文章主要介绍了C++ 控制台弹出文件管理对话框案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • C语言实现获取内存信息并输出的实例

    C语言实现获取内存信息并输出的实例

    这篇文章主要介绍了C语言实现获取内存信息并输出的实例的相关资料,需要的朋友可以参考下
    2017-03-03
  • C语言循环链表实现贪吃蛇游戏

    C语言循环链表实现贪吃蛇游戏

    这篇文章主要为大家详细介绍了C语言循环链表实现贪吃蛇,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • 基于OpenCV实现的人脸签到系统源代码

    基于OpenCV实现的人脸签到系统源代码

    本文从实际背景和需求出发,采用人脸识别签到考勤改变了传统人工检验的做法,极大提高了组织效率和办事能力,这篇文章主要给大家介绍了关于如何基于OpenCV实现的人脸签到系统的相关资料,需要的朋友可以参考下
    2024-04-04
  • C语言实现打印星号图案

    C语言实现打印星号图案

    这篇文章主要介绍了C语言实现打印星号图案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • C++中std::chrono时间库的全面解析

    C++中std::chrono时间库的全面解析

    C++ std::chrono时间库是C++标准库提供的一个时间处理库,提供了一个方便、灵活和精确的时间处理工具,下面小编就带大家深入了解一下std::chrono时间库的使用吧
    2023-10-10
  • C++实现查询本机信息的示例代码

    C++实现查询本机信息的示例代码

    这篇文章主要为大家详细介绍了如何利用C++实现查询本机信息,并且进行上报,文中的示例代码讲解详细,具有一定的参考价值,感兴趣的可以了解一下
    2023-05-05
  • 基于C语言实现推箱子游戏

    基于C语言实现推箱子游戏

    这篇文章主要为大家详细介绍了基于C语言实现推箱子游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • C++中链表操作实例分析

    C++中链表操作实例分析

    本文给大家分享了个人对于C++中链表操作的理解,并对具体实例进行了分析,是篇非常不错的学习链表操作的文章,希望大家能够喜欢
    2017-07-07

最新评论