一些关键字的作用

1、static 静态 存储在静态存储区

  1. 类的成员变量,属于该类的所有实例对象
  2. 类的成员函数,属于该类的所有实例对象
  3. 静态全局变量,只在当前文件有效
  4. 静态全局函数,只在当前文件有效

2、inline

放在函数定义前变成内联函数,内联函数就是空间换时间的函数

内联函数是直接复制“镶嵌”到主函数中去的,就是将内联函数的代码直接放在内联函数的位置上,这与一般函数不同,主函数在调用一般函数的时候,是指令跳转到被调用函数的入口地址,执行完被调用函数后,指令再跳转回主函数上继续执行后面的代码;而由于内联函数是将函数的代码直接放在了函数的位置上,所以没有指令跳转,指令按顺序执行。

什么时候使用内联函数、什么时候不使用呢?

  1. 代码量短,功能简单、时长被调用,比如循环中的函数,建议设计成内联函数
  2. 相反的,内容多,递归函数,不能设计成内联函数怒

3、const

const的核心思想是只读。

  1. 对于一个我们不会再修改的变量,可以声明为const,通常需要对它进行初始化,因为以后就没有机会再去改变它了
  2. 在一个函数声明中,const可以修饰形参,表明它是一个输入参数,在函数内部不能改变其值
  3. 修饰类的成员函数,若指定其为const类型,则表明其是一个常函数,不能修改类的成员变量。
  4. 对于类的成员函数,有时候必须指定其返回值为const类型,以使得其返回值不为“左值”

4、extend C

C和C++对函数的处理方式是不同的。比如重载函数C语言是没有的,生成可执行文件的过程处理方法C++和C语言是不一样的。extern "C"是使C++能够调用C写作的库文件的一个手段,如果要对编译器提示使用C的方式来处理函数的话,那么就要使用extern "C"来说明。

5、define

宏定义,在预处理阶段展开,用define定义的内容进行了替换,没有类型不做任何类型检查不会分配内存

6、四种强制类型转换

static_cast
静态转换,在编译期确定的转换
用法:

  1. 基本数据类型的转换
  2. 将表达式转换成void类型
  3. 可以用于void* 和其他指针类类型之间的转换,但是不能用于两个无关指针类型的直接转换
  4. 可以用于类继承结构中基类和派生类之间指针或引用的转换,向上转型安全,向下转型由于没有动态类型检查,是不安全的。

dynamic_cast
动态转换,会在运行时进行类型检查
用法

  1. 基类和派生类之间指针或引用的转换,类中必须要有虚函数

const_cast
常量转换
用法

  1. 修改一个指针的常量性

reinterpret_cast
内存数据的重新解释
用法

  1. 不同基础类型指针类型之间转换
  2. 基础类型指针与类对象指针之间的转换
  3. 将地址值转换成整数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值