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

《重生到现代之从零开始的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.lryc.cn/news/523823.html

相关文章:

  • “UniApp的音频播放——点击视频进入空白+解决视频播放器切换视频时一直加载的问题”——video.js、video-js.css
  • 【Pandas】pandas Series transform
  • 【博客之星2024年度总评选】年度回望:我的博客之路与星光熠熠
  • 飞牛 使用docker部署Watchtower 自动更新 Docker 容器
  • 【Block总结】TAdaConv时序自适应卷积,轻量高效的时间建模卷积|即插即用
  • Spring Boot 项目启动报错 “找不到或无法加载主类” 解决笔记
  • CSS 网络安全字体
  • Linux高并发服务器开发 第十五天(fork函数)
  • 【人工智能】Python中的自动化机器学习(AutoML):如何使用TPOT优化模型选择
  • 探秘自然地理:从太阳到地球的奇妙之旅与灾害预警
  • go语言zero框架通过chromedp实现网页在线截图的设计与功能实现
  • AI发展困境:技术路径与实践约束的博弈
  • [前端算法]排序算法
  • Zemax STAR 模块的入门设置
  • 知识图谱的语义叙事:构建智慧的连贯之路
  • Oracle graph 图数据库体验-安装篇
  • Nginx:从入门到实战使用教程
  • 网络安全:信息时代的守护者
  • Visual Studio Code + Stm32 (IAR)
  • JavaScript语言的正则表达式
  • R语言的编程范式
  • CentOS9 安装Docker+Dpanel+onlyoffice(https、更改字体、字号、去除限制)的避坑笔记
  • Excel 技巧11 - 如何使用Excel作成简单的排班表(★★),weekday 函数,TEXT函数
  • StarRocks 怎么让特定的SQL路由到FE master节点的
  • 在Windows/Linux/MacOS C++程序中打印崩溃调用栈和局部变量信息
  • 解决npm install安装出现packages are looking for funding run `npm fund` for details问题
  • 豆包MarsCode:小C点菜问题
  • K8S中Pod控制器之CronJob(CJ)控制器
  • FRP内网穿透0.61.1新版教程
  • 亲测解决`data_array` is not of type `MetaTensor, assuming affine to be identity