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

《重生到现代之从零开始的C++生活》—— 类和对象2

类的默认成员函数

默认成员函数就是用户没有显示实现,编译器会自动生成的成员函数,一个类会默认生成6个成员函数

构造函数

构造函数时特殊的成员函数,构造函数的初始化对象

  • 函数名与类名相同

  • 没有返回值

  • 对象实例化的时候胡自动调用构造函数

  • 构造函数可以重载

  • 如果类中没有显式定义函数,会自动生成一个无参的默认构造函数

class a
{
  public:
  add(int a.int b)
   {
     return a+b;
   }
   a()
   {
     _a=1;
     _b=1;
   }//无参构造函数
   a(int a=1,int b=1)
   {
     _a=a;
     _b=b;
   }//全缺省构造函数
  private:
  int _a;
  int _b;
};
  • 无参函数和全缺省构造函数,还有默认生成的构造函数,我们都叫默认构造函数,但是他们三个不能同时存在

反正不传实参就能调用的构造函数就是默认构造

在编译器自己生成的构造函数中,他对内置类型的变量的初始化是不确定的,所以我们要自己写构造函数

对于自定义类型,会调用这个自定义类型成员变量的默认构造函数,如果没有就会报错

析构函数

析构函数与构造函数相反,解析函数就是对资源的亲历工作,多用于动态开辟内存的时候才需要析构函数

在对象销毁时会自动调用解析函数

  • 析构函数是在类前面加一个~
  • 也是无参数无返回值
  • 一个类只有一个解析函数,如果没有编译器会默认生成

编译器默认生成的析构函数对内置类型不处理,自定义类型成员会调用他自己的析构函数

他的意思就是,只要有开辟动态空间的行为,我们就要自己写,不管在哪里,因为类似指针就是就是内置类型,要释放我们就要自己写


http://www.kler.cn/a/511939.html

相关文章:

  • QLineEdit 在文本发生变更时触发事件几种方式详细说明
  • 浅说树上倍增(下)
  • Python数据分析案例70——基于神经网络的时间序列预测(滞后性的效果,预测中存在的问题)
  • 1166 Summit (25)
  • 前端开发中的状态管理与网络请求封装
  • 计算机毕业设计PySpark+Hadoop+Hive机票预测 飞机票航班数据分析可视化大屏 航班预测系统 机票爬虫 飞机票推荐系统 大数据毕业设计
  • 【STM32-学习笔记-14-】FLASH闪存
  • 开源模型应用落地-工具使用篇-Spring AI-高阶用法(九)
  • 力扣203题—— 移除链表元素
  • ovs实现lb负载均衡
  • 外部flash烧写算法学习笔记(一)
  • Linux:EXT2文件系统
  • 分布式 IO 模块:开启药品罐装产线高效生产新纪元
  • 技术面试中的软素质技巧性答复集锦
  • 【HarmonyOS NEXT】鸿蒙三方应用跳转到系统浏览器
  • 将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(3.纯python的实惠版)
  • 第01章 分别使用DCMTK和gdcm库,解析DICOM文件系列的dicom标准数据信息
  • win32汇编环境,窗口程序中复杂列表框的应用举例
  • 家政预约小程序08服务分类
  • 【go语言】go的卸载与安装
  • 大模型迎来2025开年大作:deepseek-R1与deepseek-R1-Zero
  • 5G 核心网 相关概念快速入门
  • Web3 游戏周报(1.13 - 1.19)
  • 已知域名如何知道网站的ip
  • QT 占位符的用法
  • Vue3初学之Element Plus Dialog对话框,Message组件,MessageBox组件