当前位置: 首页 > news >正文

C++学习打卡

 类成员的访问

C++的三大特性:封装,继承,多态

类与结构体的最大区别在于,类可以封装对象的行为,也就是函数

类分为数据成员和函数成员,这两者被称为对象的属性和行为

如果我们要对对象的行为和属性进行操控,就需要访问类的成员

访问类的成员不是随意的,这一点受到类中的权限控制,分为public,protect,private,

public:公共(无论类内类外都可以访问)

protect:家族私有(自己和自己的子类成员可以访问)

private:自己私有(只有自己的类成员可以进行访问)

在默认情况下,类的权限是private,而结构体的权限默认是public

关键字区域划分是直到出现下一个关键字为止

内联成员函数

内联成员函数关键字:inline

与普通成员函数不同,内联成员函数一般在类内定义,而普通成员函数一般在类内声明,类外进行定义(这个概念有些许争议,如果你没有分文件进行处理数据可能普通成员函数也在类内定义) 

内联成员函数的时间花销一般比普通函数(注意是普通函数,包括了普通成员函数)更小

原因是内联成员函数在编译时就已经将代码插入到被调用点,在最终执行时不必要将函数重新进行调用。这使得内联成员函数很适用于一些小型计算,如普通的加减运算

内联成员函数的缺点:如果对内敛成员函数进行滥用,可能会导致代码膨胀,也就是说莫名奇妙多出一大段代码

与普通成员函数的区别

  • 定义位置

    • 内联成员函数:定义在类定义内部。

    • 普通成员函数:定义在类定义外部,通常在源文件中。

  • 调用效率

    • 内联成员函数:可能被编译器内联展开,减少函数调用开销。

    • 普通成员函数:通常不会被内联展开,每次调用都会执行函数调用的完整过程。

  • 作用域

    • 内联成员函数:由于定义在类定义内部,可以直接访问类的私有和保护成员。

    • 普通成员函数:定义在类定义外部,需要通过类的实例或指针来访问成员。

静态类成员

关键字:static

由于类成员分为数据成员和成员函数,也就有两种静态类成员

静态类成员属于而不属于对象,静态类成员可以被所有对象所访问,调用方式可以通过类名直接进行访问,由于可以被所有对象所使用,所以需要初始化

静态成员函数的用途

  1. 初始化静态成员变量

    • 静态成员函数常用于初始化静态成员变量,因为静态成员变量属于类本身,而不是某个对象。

  2. 工具函数

    • 静态成员函数可以作为工具函数,提供与类相关的操作,但不需要访问对象的实例数据。例如,一个数学类可以提供静态成员函数来计算数学公式。

  3. 类级别的逻辑

    • 静态成员函数可以实现与类相关的逻辑,例如统计对象数量、管理全局状态等。

静态成员函数与普通成员函数的区别

  • 普通成员函数

    • 属于类的对象,需要对象的上下文(this指针)才能访问非静态成员变量和非静态成员函数。

    • 每次调用时,都需要一个对象实例。

  • 静态成员函数

    • 属于类本身,不需要对象的上下文。

    • 只能访问静态成员变量和其他静态成员函数。

    • 可以通过类名直接调用,而不需要创建对象。

以上这段借鉴了kimi

相关文章:

  • qwen3解读
  • Redis事务详解:原理、使用与注意事项
  • vue-09(使用自定义事件和作用域插槽构建可重用组件)
  • 磨皮功能 C++/C的OpenCV 实现
  • 【11408学习记录】考研英语写作提分秘籍:2013真题邀请信精讲+万能模板套用技巧
  • 【shell】通过Shell命令占用内存
  • 利用python工具you-get下载网页的视频文件
  • #AI短视频制作完整教程
  • JDK21深度解密 Day 9:响应式编程模型重构
  • CTFHub-RCE 命令注入-过滤目录分隔符
  • 小明的Java面试奇遇之互联网保险系统架构与性能优化
  • 性能优化 - 理论篇:CPU、内存、I/O诊断手段
  • Unity3D仿星露谷物语开发57之保存库存信息到文件
  • 精简多功能办公软件
  • CodeTop100 Day18
  • 用 Pandera 高效验证和清洗 Pandas 数据集——实用分步指南
  • offset三大家族
  • stm32默认复位刚开始由hsi作为主时钟源而后来才换成的pll
  • 硬件开发全解:从入门教程到实战案例与丰富项目资源
  • 【深度学习】14. DL在CV中的应用章:目标检测: R-CNN, Fast R-CNN, Faster R-CNN, MASK R-CNN
  • 网站建设维护费合同/北京培训学校
  • vps做网站/怎么自己建网站
  • hbuilderx怎么制作网页/关键词优化外包服务
  • 天津公司做网站/网站快速建站
  • 微信做模板下载网站/怎样做企业推广
  • 网站开发合同编号如何编写/百度平台商家客服