广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++中常用修饰符inline的详细介绍
  • 776
分享到

C++中常用修饰符inline的详细介绍

2023-06-17 12:06:30 776人浏览 八月长安
摘要

本篇内容介绍了“c++中常用修饰符inline的详细介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在前面谈了const后,现在再来谈一下

本篇内容介绍了“c++中常用修饰符inline的详细介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

在前面谈了const后,现在再来谈一下inline这个关键字,inline也是C++程序设计语言中的常用的修饰符之一,之所以把这个问题放在这个位置,是因为inline这个关键字的引入原因和const十分相似,下面分为如下几个部分进行阐述。

c++中引入inline关键字的原因:

inline 关键字用来定义一个类的内联函数,引入它的主要原因是用它替代c中表达式形式的宏定义。

表达式形式的宏定义一例:

#define expressionname(var1,var2) (var1+var2)*(var1-var2)

为什么要取代这种形式呢,且听我道来:

1. 首先谈一下在c中使用这种形式宏定义的原因,C语言是一个效率很高的语言,这种宏定义在形式及使用上像一个函数,但它使用预处理器实现,没有了参数压栈,代码生成等一系列的操作,因此,效率很高,这是它在c中被使用的一个主要原因。

2. 这种宏定义在形式上类似于一个函数,但在使用它时,仅仅只是做预处理器符号表中的简单替换,因此它不能进行参数有效性的检测,也就不能享受c++编译器严格类型检查的好处,另外它的返回值也不能被强制转换为可转换的合适的类型,这样,它的使用就存在着一系列的隐患和局限性。

3. 在c++中引入了类及类的访问控制,这样,如果一个操作或者说一个表达式涉及到类的保护成员或私有成员,你就不可能使用这种宏定义来实现(因为无法将this指针放在合适的位置)。

4. inline 推出的目的,也正是为了取代这种表达式形式的宏定义,它消除了它的缺点,同时又很好地继承了它的优点。

为什么inline能很好地取代表达式形式的预定义呢?

对应于上面的1-3点,阐述如下:

1. inline 定义的类的内联函数,函数的代码被放入符号表中,在使用时直接进行替换,(像宏一样展开),没有了调用的开销,效率也很高。

2. 很明显,类的内联函数也是一个真正的函数,编译器在调用一个内联函数时,会首先检查它的参数的类型,保证调用正确。然后进行一系列的相关检查,就像对待任何一个真正的函数一样。这样就消除了它的隐患和局限性。

3. inline 可以作为某个类的成员函数,当然就可以在其中使用所在类的保护成员及私有成员。
在何时使用inline函数:

首先,你可以使用inline函数完全取代表达式形式的宏定义。

另外要注意,内联函数一般只会用在函数内容非常简单的时候,这是因为,内联函数的代码会在任何调用它的地方展开,如果函数太复杂,代码膨胀带来的恶果很可能会大于效率的提高带来的益处。 内联函数最重要的使用地方是用于类的存取函数。

如何使用类的inline函数:

简单提一下inline 的使用吧:

在类中定义这种函数:

class classname{  .....  ....  getwidth(){return m_lpicwidth;}; // 如果在类中直接定义,可以不使用inline修饰  ....  ....  }

在类中声明,在类外定义:

class classname{  .....  ....  getwidth(); // 如果在类中直接定义,可以不使用inline修饰  ....  ....  }  inline getwidth(){  return m_lpicwidth;  }

“C++中常用修饰符inline的详细介绍”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: C++中常用修饰符inline的详细介绍

本文链接: https://www.lsjlt.com/news/288999.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++中常用修饰符inline的详细介绍
    本篇内容介绍了“C++中常用修饰符inline的详细介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在前面谈了const后,现在再来谈一下...
    99+
    2023-06-17
  • C++中常用修饰符static的介绍
    这篇文章主要介绍“C++中常用修饰符static的介绍”,在日常操作中,相信很多人在C++中常用修饰符static的介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++中常用修饰符static的介绍”的疑...
    99+
    2023-06-17
  • VB.NET修饰符详细概念介绍
    本篇内容介绍了“VB.NET修饰符详细概念介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!VB.NET修饰符1.Shadows Shado...
    99+
    2023-06-17
  • Vue事件修饰符使用详细介绍
    目录1 .prevent阻止默认事件2 .stop阻止事件冒泡3 .once事件只触发一次4 .capture使用事件捕获模式5 .self当e.target是当前操作的元素才触发事...
    99+
    2022-11-13
    Vue事件修饰符 Vue事件修饰符的作用
  • C++中static修饰符的详解及其作用介绍
    目录概述静态数据成员引用静态数据成员用类名访问数据成员静态成员函数综合案例概述 static (静态) 修饰符是用来控制变量的存储方式和可见性的. 静态局部变量存储在静态区域: s...
    99+
    2022-11-12
  • C++中const修饰符的详解及其作用介绍
    目录概述常对象常对象成员常成员函数常数据成员数据成员访问限制常对象修改的限制常指针指向常变量的指针指向对象的指针小结对象的常引用总结概述 const 是 constant 的缩写, ...
    99+
    2022-11-12
  • Java详细讲解包的作用以及修饰符的介绍
    目录1.包1.包的三大作用2.包的基本语法3.包的本质4.包的命名规则5.包的命名规范6.常用的包7.注意事项和使用细节2.访问修饰符1.4种访问修饰符的访问范围2.使用注意事项3....
    99+
    2022-11-13
  • c++中string和vector的详细介绍
    目录知识点1【STL的概述】知识点2【迭代器的案例】知识点3【string类】1、案例:string的构造和赋值知识点1【STL的概述】 STL(Standard Template ...
    99+
    2022-11-13
  • vue中的事件修饰符介绍和示例
    目录1. 官方文档2. 说明+实例2.1 .stop2.2 .prevent2.3 .capture2.4 {keyCode | keyAlias}2.5 .native2.6 .o...
    99+
    2023-05-17
    vue修饰符 vue事件修饰符
  • C++中cout的格式使用详细介绍
    1.cout和i/i++/++i的组合使用 i++ 和 ++i 是有着不同的含义,和 cout 组合使用也会得到不同的结果,下面给出一段代码: #include <iost...
    99+
    2022-11-12
  • C++中的命名空间详细介绍
    目录命名空间的特性声明命名空间和命名空间成员全局命名空间不连续命名空间嵌套命名空间using声明和using编译指令命名空间别名综合代码示例总结命名空间的特性 首先熟悉一下命名空间的...
    99+
    2022-11-13
  • C语言中各种操作符的详细介绍(纯干货!)
    目录算术操作符移位操作符位操作符赋值操作符 单目操作符(类型)   强制类型转换       ...
    99+
    2022-11-12
  • Bash中文件描述符的详细介绍
    前言 linux将所有内核对象当做文件来处理,系统用一个size_t类型来表示一个文件对象,比如对于文件描述符0就表示系统的标准输入设备STDIN,通常情况下STDIN的值为键盘,如read命令就默认从STDIN读取数据...
    99+
    2022-06-04
    bash 文件描述符 linux bash bash stdin
  • linux中shell字符串操作的详细介绍
    本篇内容主要讲解“linux中shell字符串操作的详细介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux中shell字符串操作的详细介绍”吧!在做shell批处理程序时候,经常会涉及...
    99+
    2023-06-09
  • 关于java中的常用类——String的详细介绍
    概述java.lang.String 类代表字符串。Java程序中所有的字符串文字(例如"abc")都可以被看作是实现此类的实例String 中包括用于检查各个字符串的方法,比如用于比较字符串,搜索字符串,提取子字符串以及创建具有翻译为大写...
    99+
    2014-10-10
    java基础 java 常用类 String
  • Vue常用的修饰符的作用详解
    目录一、Vue的修饰符是什么二、修饰符的作用1、表单修饰符2、事件修饰符3、鼠标按钮修饰符4、键盘修饰符5、v-bind修饰符三、常用的应用场景一、Vue的修饰符是什么 Vue中的修...
    99+
    2022-11-13
    Vue 修饰符 Vue 修饰符作用
  • CSS中的类和ID选择符的详细介绍
    本篇内容主要讲解“CSS中的类和ID选择符的详细介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS中的类和ID选择符的详细介绍”吧!类属性类选择符格式:....
    99+
    2022-10-19
  • C语言中volatile关键字的详细介绍
    这篇文章主要讲解了“C语言中volatile关键字的详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言中volatile关键字的详细介绍”吧!1. 什么是volatile关键字?v...
    99+
    2023-06-20
  • C/C++中字符串流详解及其作用介绍
    目录概述字符串流理解字符串流输出字符串对象输入字符串流对象输入输出字符串流对象案例一案例二字符数组 vs 文件总结概述 文件流类和字符串流类都是 ostream, istream 和...
    99+
    2022-11-12
  • Python中字符串格式化str.format的详细介绍
    前言 Python 在 2.6 版本中新加了一个字符串格式化方法: str.format() 。它的基本语法是通过 {} 和 : 来代替以前的 %.。 格式化时的占位符语法: replacement_f...
    99+
    2022-06-04
    详细介绍 字符串 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作