类和对象(二)

类和对象(二)

这篇博客主要根据const修饰成员函数,内联,友元函数以及静态成员这四个方向说明。

const修饰的成员函数

在以前的学习中我们学习了const修饰指针,修饰指针指向的变量,const修饰变量以及const修饰函数返回值等,这一次我们学习const修饰成员函数。
首先const放在函数后面:void fun()const
这样表示const修饰的是this指针所指向的对象,它不可改变。
void fun()const == void fun(const A* this)

内联

以inline修饰的函数叫做内联函数,编译时C++编译器会调用内联函数的地方展开,没有 函数压栈的开销,内联函数提升程序运行的效率。

  1. inline是一种以空间换时间的做法,省去调用函数额开销。所以代码很长或者有循环/递归的的函数不适宜使用内联。
  2. inline对于编译器而言只是一个建议,编译器会自动优化,如果定义为inline的函数体内有循环/递归等等,编译器优化时会忽略掉 内联。
  3. inline必须函数定义放在一起,才能成为内联函数,仅将inline放在声明前是不起不作用的。
  4. 定义在类内的成员函数默认定义为内联函数。
    在C++中我们一边用const enum inline替代#define
    相比较下,宏的优点:
  5. 增强代码的复用性。
  6. 提高性能。
    宏也有很多缺点:
  7. 不方便调试宏。(因为预编译阶段进行了替换)
  8. 导致代码可读性差,可维护性差,容易误用。
  9. 没有类型安全的检查。

友元类

有的时候我们需要在一个类中使用另一个类的成员函数,这个时候我们可以用关键字friend将类声明为友元类,需要注意的是友元类是单向的,我是你的友元类所以我可以用你的成员函数,可是你要不是我的友元依旧不能使用。
需要注意的是友元类一定程度上破坏了C ++的封装性,所以不宜多用。

静态成员

我们在上一篇知道类里面有成员函数,成员函数存储在代码段里边。随着类的改变成员函数也会改变,他的作用域是整个类,可是如果成员被static修饰,这样他就成为了静态的成员函数,存储在数据段里边,相同的他的作用域也会增大,作用域是全局。

  1. 类里面static修饰的成员,成为静态类成员。
  2. 类的静态成员是该类型的所有对象对象所共享。
    这里写图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值