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

类和对象 中

一.类的6个默认成员函数

请添加图片描述

默认成员函数是特殊的成员变量,当我们不编写这些函数的时候,编译器会自动生成;而当我们编写了这些函数的时候,编译器便不再生成。换句话讲,有些类中这些函数需要我们自己写,而有些类中我们不需要编写这些函数,由编译器自动生成。

二.构造函数

1.构造函数的引入

请添加图片描述

2.构造函数的特性

a.构造函数名与类名相同
b.构造函数无返回值
c.对象实例化时编译器自动调用对应的构造函数
也就是说,是在main函数构造对象后,再调用构造函数,对对象相应的类成员变量初始化。构造函数的功能是初始化,而不是构造对象!!!
d.构造函数可以重载

请添加图片描述

e.如果类中没有显式定义构造函数,会自动生成一个无参的默认构造函数,一旦用户显式定义编译器将不再生成。
编译器生成的默认构造函数只对自定义类型(class/struct/union等自己定义的类型)的变量调用默认构造,而对内置类型(int/char/double/指针等)不处理。

请添加图片描述

请添加图片描述

3.缺省参数的混合使用

请添加图片描述

三.析构函数

1.析构函数的引入

请添加图片描述

2.析构函数的特性

a.析构函数的函数名是在类名前加~
c语言中字符~的意思是按位取反
b.无参数返回值
c.一个类中只有一个析构函数。若未显式定义,系统会自动生成默认的析构函数。
注意:析构函数不能重载。
d.对象生命周期结束的时候,编译器会自动调用析构函数


@1.作用域不一定影响变量的生命周期
@2.命名空间不影响变量的生命周期
@3.局部域、全局域影响变量的生命周期
@4.局部对象会函数栈帧销毁的时候随之销毁
@5.malloc的变量需要程序员手动free


e.如果类中没有显式定义析构函数,会自动生成一个无参的默认析构函数,一旦用户显式定义编译器将不再生成。
编译器生成的默认析构函数只对自定义类型(class/struct/union等自己定义的类型)的变量调用默认构造,而对内置类型(int/char/double/指针等)不处理。
请添加图片描述

在这里插入图片描述

相关文章:

  • LeetCode变位词组
  • locust压测实例
  • 8.6 轻量化网络设计概述
  • 【C#】萌狼学习C#那年写的笔记汇总
  • 20个js工具函数助力高效开发
  • 软件领域中面向对象的设计模式
  • 01用户登录,登出,token等框架说明
  • 几位阿里发布这份内部MySQL性能优化法则笔记
  • java-php-python-ssm巢院小区疫情管控系统计算机毕业设计
  • Linux基础 - 系统安全(SELinux与Firewalld)
  • 学完这份“顶级”SpringCloudAlibaba笔记,微服务竟如此简单
  • Spring注解驱动开发及源码解析
  • 2.1RDB、AOF及混合持久化详解Redis持久化
  • matlab基于PID反馈的主动隔振效果仿真分析
  • 力扣记录:Hot100(8)——253-322
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • eclipse的离线汉化
  • Fundebug计费标准解释:事件数是如何定义的?
  • Iterator 和 for...of 循环
  • php面试题 汇集2
  • React-redux的原理以及使用
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • uva 10370 Above Average
  • 微信小程序设置上一页数据
  • 我建了一个叫Hello World的项目
  • 物联网链路协议
  • 带你开发类似Pokemon Go的AR游戏
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (1)bark-ml
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (145)光线追踪距离场柔和阴影
  • (补)B+树一些思想
  • (初研) Sentence-embedding fine-tune notebook
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (一)RocketMQ初步认识
  • (译)2019年前端性能优化清单 — 下篇
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)winform之ListView
  • (转)平衡树
  • (转)一些感悟
  • (转载)hibernate缓存
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .net Signalr 使用笔记
  • .NET Standard 的管理策略
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .NET项目中存在多个web.config文件时的加载顺序
  • .sdf和.msp文件读取
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)
  • [ 蓝桥杯Web真题 ]-布局切换