C++杂谈 inline关键字

2023-11-17

1.inline
用于把函数指定为内联函数,且该关键字需要与函数定义放在一起,与函数声明放在一起没有效果。

2.内联函数一般只适用于比较精简的小函数,实际上内联函数是通过牺牲空间去换取时间上的效率,如果函数过于庞大会造成大量空间的浪费,所以需要权衡空间和时间上的平衡。内联函数最重要的使用地方是用于类的存取函数

3.内联函数的使用方法
(1)在类中定义的函数不需要加inline修饰,编译器会把它自动化为内联函数

		class Object
		{
			Object();
			int GetAge()	//内联函数
			{
				return m_age;
			}
		private:
			int m_age;
		};

(2)在类外定义需要增加inline修饰

		class Object
		{
			Object();
			int GetAge();
		private:
			int m_age;
		};
		inline int GetAge()	//内联函数
		{
			return m_age;
		}

4.注意事项
(1)inline对于编译器只是一种建议,编译器可以忽略这个建议。例如如果inline修饰的函数过于庞大,编译器往往会忽略这个inline,把这个函数当成普通函数来处理。
(2)使用inline时尽量把修饰的对象定义在头文件中,以确保编译器能“看到”。如果考虑到编程习惯还是想把函数定义放到源文件中也可以这么实现。

	//Object.h
	#pragma once
	void SetName();


       //Object.cpp
	inline void SetName()
	{
	}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++杂谈 inline关键字 的相关文章

  • vector 不是模板 报错解决

    目录 vector 不是模板 报错解决 嵌套vector 批量修改失败 嵌套vector 批量修改OK vector 不是模板 报错解决 list和vector在命名空间std里 因此只需要在vector前加std 即可 include
  • c++基础2:使用VS2010 创建最简单的MFC应用程序窗体

    1 添加 新建项目 选择 VISUAL C MFC应用程序 确定 下一步 2 在 应用程序类型 中选择 基于对话框 下一步 3 在 用户界面功能 只选择 粗框架 下一步 4 在 高级功能 取消所有选择 下一步 5 生成的类 点击 完成
  • 如何声明静态方法 和 实现?

    如何声明静态方法 和 实现 在 C 中 声明和实现静态方法 静态成员函数 与普通成员函数有一些区别 静态方法属于类本身 而不是类的对象 因此在声明和实现时需要特殊的语法 声明静态方法 在类的声明中 通过在函数原型前面添加关键字 static
  • C++"char"类型的一些解释

    C char 类型的一些解释 char 类型 char 类型的cin和cout 说明 本文适合初学者阅读 为方便叙述和理解 本文牺牲部分严谨性 本文中的概念 数字 代表整数等日常意义上的数而并非书写符号 char 类型 C 中用char类型
  • c++职工管理系统

    要求 代码 management system cpp main函数 include
  • 【千律】C++基础:计算宽窄字节字符串所占用的字节数

    include
  • 统计字符串中整数个数

    输入一个字符串 内有数字和非数字字符 例如 jh2515da555adad22 dsd55252aa 将其中连续数字作为一个整数 依次存放在 一组数a中 例如 2515放在a 0 555放在a 1 统计有多少个整数 并输出这些数 inclu
  • C++,引用和指针

    引用指的是对什么的引用 是地址引用吗 这不和指针一样吗 引用 Reference 是C 中一种特殊的变量类型 它可以被看作是对另一个变量的别名 即某个变量的引用 引用不是地址引用 它是在语法层面提供的一种更直观 更安全的方式来访问和修改其他
  • vector中emplace_back和push_back详解,源码解读

    C 11之前 通常使用push back 向容器中加入一个右值元素 临时对象 的时候 首先会调用构造函数构造这个临时对象 然后需要调用拷贝构造函数将这个临时对象放入容器中 原来的临时变量释放 这样造成的问题是临时变量申请的资源就浪费 C 1
  • 静态变量与静态函数

    堆与栈 1 栈区 stack 由编译器自动分配释放 存放函数的参数值 局部变量的值等 操作是类似于数据结构中的栈 2 堆区 heap 一般有程序员分配和释放 动态存储分配 分配方式类似于链表 3 全局区 static 全局变量和静态变量的存
  • 为什么C++有多种整型?

    C 中有多种整型是为了满足不同的需求 提供更灵活和高效的整数表示方式 不同的整型具有不同的字节大小 范围和精度 可以根据应用的需求选择合适的整型类型 以下是一些原因解释为什么C 有多种整型 内存和性能优化 不同的整型在内存中占用的空间不同
  • 【千律】C++基础:多态性与虚函数

    虚函数 通过父类的指针 指向子类的对象 调用虚函数时 调用子类的函数 include
  • 配置setting.json解决vscode和vim按键冲突

    vim 对于需要经常使用的vscode中的复制 粘贴 剪切 全选 查找和新建等 在vim正常模式下是不可用的 不过可以在配置文件中取消vim handleKeys键位映射 即保留这些原始按键功能 对于上述可能存在和正常按键冲突 可以通过设置
  • c#10(密封类和密封方法,异常)

    密封类和密封方法 异常 一 密封类 密封类可以用来限制扩展性 如果密封了某个类 则其他类不能从 该类继承 如果密封了某个成员 则派生类不能重写该成员的实现 默认情况下 不应该密封类和成员 密封可以防止对库的类型和成员进行自定义 C 中使用密
  • 【千律】C++基础:对字符串指定位置的字符变换大小写

    实现功能 当输入参数b odd pos为ture时 将字符串中奇数位置的字符转换为大写 同时将偶数位置的字符转换为小写 反之 当b odd pos为false时 将字符串中奇数位置的字符转换为小写 同时将偶数位置的字符转换为大写 inclu
  • 使用迭代器(iterator)遍历vector、map等

    所涉及方法 添加元素 array push back 正向迭代器 vector iterator 迭代器变量名 反向迭代器 vector reverse iterator 迭代器变量名 在不知道所包含数据个数的情况下用以遍历元素 vecto
  • C-结构体

    目录 结构体 定义结构体 第一种方式 定义的同时定义变量名 第三种方式 赋值和初始化 如何取出结构体成员 结构体变量 结构体指针作为函数参数进行传递 结构体运算 结构体 形成了一个新的数据类型 定义结构体 第一种方式 定义一个新的数据类型
  • C++类和对象:补充拷贝构造

    前言 如果一个类中什么成员都没有 简称为空类 空类中什么都没有吗 并不是的 任何一个类在我们不写的情况下 都会自动生成下面6个默认成员函数 目录 一 六大函数 1 构造函数 1 定义 2 特性 3 赋值 4 初始化列表 2 拷贝构造函数 3
  • C++四种类型转化

    文章目录 static cast const cast reinterpret cast 重新解释 dynamic cast static cast 该运算符把expression转化为type name类型 static cast在编译时
  • c++通讯录管理系统

    系统需求 代码 include

随机推荐

  • wpf解决方案

    Wpf部分 1wpf textbox 显示和隐藏 personq Visibility Visibility Visible 这样显示 personq Visibility Visibility Hidden 这样隐藏 2 wpfradio
  • Linux笔记之安装配置nginx的两种方式——yum安装和源码安装

    安装配置nginx的两种方式 yum安装和源码安装 访问nginx的官方网站 http www nginx org Nginx版本类型 Mainline version 主线版 即开发版 Stable version 最新稳定版 生产环境上
  • Cannot run program “D:\jdk8\bin\java.exe“ (in directory “C:\Users\Administrator\AppData\Local\JetBra

    bug笔记 项目场景 运行main方法 Cannot run program D jdk8 bin java exe in directory C Users Administrator AppData Local JetBrains In
  • 蓝桥杯真题 杨辉三角形 python

    专栏 蓝桥杯题目 目录 问题描述 输入格式 输出格式 样例输入 样例输出 评测用例规模与约定 省流版本 题目解析 综上所述 写成代码如下所示 问题描述 下面的图形是著名的杨辉三角形 如果我们按从上到下 从左到右的顺序把所有数排成一列 可以得
  • Unity入门教程

    Unity入门 Unity脚本基础 Unity脚本基本规则 Unity脚本生命周期函数 Inspector窗口可编辑的变量 Mono中的重要内容 Unity重要组件和API 最小的单位GameObject 时间相关Time 1 时间缩放比例
  • 浅谈编程职业的乐趣和苦恼

    乐趣 编程为什么有趣 作为回报 它的从业者期望得到什么样的快乐 首先 这种快乐是一种创建事物的纯粹快乐 如同小孩在玩泥巴时感到快乐一样 成年人喜欢创建事物 特别是自己进行设计 我想这种快乐是上帝创造世界的折射 一种呈现在每片独特的 崭新的树
  • SpringCloud 商城系统搭建之eureka

    项目环境 1 IDE eclipse maven 2 操作系统 win10 3 jdk 1 8 4 springboot 2 1 0 RELEASE springcloud Greenwich SR5 SpringCloud对应Spring
  • BIG DATA 神奇的大数据 - HDFS分布式文件系统

    目录 自说 学习路径 基本概念 块 优劣 结构 读写流程 使用 命令行接口 自说 HDFS在Hadoop起到重要作用 解决了大规模的数据存储及管理问题 呢么有如此庞大的数据 hdfs是如何准确的做到数据的保存与不流失性 又是通过什么方式去存
  • iqoo手机可以刷鸿蒙系统吗,华为老机型可以更新鸿蒙系统么-华为哪些老机型支持鸿蒙系统...

    目前由于华为鸿蒙系统发布的火爆 导致花粉俱乐部直接崩溃 那么鸿蒙系统除了支持当下的旗舰机外 还支持老机型么 小编就为大家 带来了相关说明 华为老机型可以更新鸿蒙系统么 可以 据小编得到的消息 鸿蒙系统将会支持百万老机型 更新 不要错过了 华
  • Docker常用命令分享(Docker安装MySQL)

    一 Docker是什么 Docker 使用 Google 公司推出的 Go 语言 进行开发实现 基于 Linux 内核的 cgroup namespace 以及 OverlayFS 类的 Union FS 等技术 对进程进行封装隔离 属于
  • springsecurity教程

    springsecurity 课程 一 权限管理简介 1 什么是权限管理 基本上涉及到用户参与的系统都要进行权限管理 权限管理属于系统安全的范畴 权限管理实现对用户访问系统的控制 按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授
  • 排除服务器简单系统故障方法,引导CD排除服务器故障方法有哪些?

    尽管Linux系统以稳定可靠著称 但由于硬件问题有时仍会崩溃 或无法引 针对这一问题 最好的解决办法就是使用Linux系统引导CD 为了方便读者 笔者在下面列出了安装Red Hat Linux 8 0的最必须步骤 为安装过程作笔记 在Red
  • 机器视觉基础

    机器视觉基础 什么是机器视觉 机器视觉常见的应用 机器视觉常用的概念 硬件选型 控制器 相机 镜头 附件选型 什么是机器视觉 机器视觉常见的应用 机器视觉常用的概念 快门时间越短 图片越暗淡 光圈小了 照片会暗淡 硬件选型的时候考虑物距 W
  • Vmware安装vmware-tools后,仍无法上网

    步骤总结 保证vmware tools安装完成 参考下文步骤一 上一步骤如遇到问题 重启vmware的操作系统 步骤总结 1 保证vmware tools安装完成 2 参考下文 步骤一 VMware Workstation虚拟机不能联网的解
  • HTML-div,span,form,input标签

  • 记录docker 部署nessus

    1 开启容器 docker run itd name ramisec nessus p 8834 8834 ramisec nessus 2 登录 注意是https https ip 8843 3 修改admin密码 进入容器 docker
  • 【自学】若依系统-----权限控制

    文章目录 1 数据表 2 sql查询 3 首页菜单权限核心代码 4 菜单管理功能 5 流程 1 数据表 2 sql查询
  • [算法]LeetCode 专题 -- 二分查找专题 34. 在排序数组中查找元素的第一个和最后一个位置

    LeetCode 专题 二分查找专题 34 在排序数组中查找元素的第一个和最后一个位置 难度 中等 题目描述 给定一个按照升序排列的整数数组 nums 和一个目标值 target 找出给定目标值在数组中的开始位置和结束位置 你的算法时间复杂
  • 章节一:Vue.js简介

    1 1 介绍Vue js的基本概念和历史 Vue js是一个流行的JavaScript前端框架 用于构建交互式的Web界面 它采用了组件化的开发模式 使得构建复杂的用户界面变得简单和高效 Vue js由尤雨溪 Evan You 于2014年
  • C++杂谈 inline关键字

    1 inline 用于把函数指定为内联函数 且该关键字需要与函数定义放在一起 与函数声明放在一起没有效果 2 内联函数一般只适用于比较精简的小函数 实际上内联函数是通过牺牲空间去换取时间上的效率 如果函数过于庞大会造成大量空间的浪费 所以需