inline函数和C++语言的类的认识

【一】inline关键字

inline修饰的函数叫做内联函数,编译时C++编译器在调用内联函数的地方展开,没有函数调用堆栈的开销,从而提升代码的效率。

底层原理:这东西有点像#define定义的函数,直接在相同的地方直接替换,却也解决了宏函数的缺点(不能调试,没有类型安全检查,容易写错),其缺点也是很明显的,就是会导致目标文件的变大,从而造成空间的浪费。

inline对于编译器而言只是一个建议,不同编译器关于inline实现的机智也可能是不同的,一般建议:将函数规模较小(即函数不是很长,具体没有准确的说法,取决于编译器内部实现),不是递归,且频繁调用的函数采用inline特性。

tips:inline函数不建议声明和定义分离,分离会导致链接错误,因为inline直接被展开,没有函数地址了,链接就会找不到。

这个时候就有小伙伴要问了,那如果我的inline建议没有被采纳,可不可以声明和定义分离?

这个小伙伴真是一个机灵鬼,你可以简单认为,只要是被inline修饰的函数就不进入函数表,那么你就不会链接上,这也是inline函数的一个特性吧(有的人就要问了,函数表是啥?那就可以看看俺之前的文章了,详细的介绍了一个程序在编译的时候编译器做的事情)。

【二】面向对象和面向过程的初步认识

C语言是面向过程的,关注的是过程,分析出问题的步骤,通过调用函数逐步解决问题

C++是基于面向对象的,关注的是对象,将一件事情分成不同的对象,靠对象之间交互完成

【三】类的定义

class className

{        //类体:由成员函数和变量组成

};这个分号必不可少

class为定义类的关键字,className为类的名字,{}中为类的主体,注意类定义结束时后面的分号不能省略。

类体重内容称为类的成员:类重的变量称为类的属性或者是成员变量:类中的函数称为类的方法或者是成员函数。

类的两种定义方式:

1.声明和定义全部放在类体中,需注意的是,成员函数如果在类中定义,编译器可能会将其当成内联函数处理。

2.类声明在.h文件中,成员函数定义放在.cpp文件中,注意:成员函数名前面需要加上类名::

【四】访问限定符

C++实现封装的方式:用类将对象的属性与方法结合在一块,让对象更加完善,通过访问权限选择性将其借口提供给外部的用户使用。所以你肯定是需要隐藏一部分接口的,所以这就产生了三种权限的限定符。

1.public:被public修饰的成员在类外面可以直接被访问

2.protected和private修饰的成员在类外处是不能被直接访问的(此处protected和private是类似的)

3.访问权限的作用域是从访问限定符出现的位置直到下一个访问限定符出现时为止

4.如果后面没有访问限定符,作用域就到}即类结束

5.class的默认访问权限为private,struct为public(理由很简单,struct需要兼容c)

以上就是这期博客的全部内容了,如果觉得写的还不错的话,还请一键三连,感激不尽,如果觉得有地方不对的话,还请位于评论区指正。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值