1.类的定义

class为定义类的关键字,className为类的名字,{}中为类的主体,注意类定义结束时后面分号
类中的元素称为类的成员:类中的数据称为类的属性或着成员变量;类中的函数称为类的方法或者成员函数。

2.类的两种定义方式
1》 声明和定义全部放在类体中,需要注意:成员函数如果在类中定义,编译器可能会将其当作内联函数处理。
2》 声明与定义分开——成员函数在类外定义时,必须要在成员函数前加:类名::
3》 一般情况下 建议将声明与定义分开——为了防止重复包含。
3.类的访问限定符
1> public修饰的成员在类外可以直接被访问
2>protested和private修饰的成员在类外不能被直接访问。
3>访问权限作用域从该访问限定符出现的位置开始直到下一个访问限定符出现为止
4>class的默认访问限定符为private,struct为public(因为struct要兼容c语言)。

4.类对象的存储方式猜测
一个类的大小,实际就是该类“成员变量之和”,当然也要进行内存对齐,注意空类的大小,空类比较特殊,编译器给了空类一个字节来唯一标识这个类。

5.this指针
1.this指针:this指针的类型:类类型* const
2.只能在成员函数中使用

3.this指针是成员函数第一个隐含的指针形参,一般情况下由编译器通过exc寄存器自动传递,不需要用户传递。

寄存器:eax ebx ecx edx ebp esp…
空间小 速度快 离cpu近的存储空间
一般情况下内存中的数据要进行计算,基本上都是先将数据放到寄存器中,然后再来进行运算
在程序中可以将寄存器理解成全局变量

6.构造函数:
1》概念:构造函数是一个特殊的成员函数,名字与类名相同,创建类对象时由编译器自动调用,保证每个数据成员都有一个合适的初始值,并且在对象的生命周期内只调用一次。
2》特性:
函数名与类名相同
无返回值
对象实例化时自动调用对应的构造函数
构造函数可以重载

3》默认的构造函数:
1.用户定义的无参构造函数
2.用户定义带有全缺省的构造函数——所有参数都带有默认值
3.如果用户没有显示定义任何构造函数,编译器会自动生成一个无参的构造函数
注意:默认的构造函数只能存在一个

默认的构造函数

成员变量的命名风格:

避免与函数形参混淆,和参数区分开。

7.析构函数
概念:与构造函数功能相反,对象在销毁时,由编译器自动调用。
作用:完成对象中资源的清理工作。
特性:1. 析构函数名是在类名前加上字符“~”
2. 无参数 无返回值
3. 一个类有且只有一个析构函数,
4. 对象生命周期结束时,c++编译系统自动调用析构函数。


8.拷贝构造函数
概念:只有单个形参,该形参是对本类类型对象的引用(一般由const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用。
特性:
1.拷贝构造函数是构造函数的一种重载形式‘
2.拷贝构造函数的形参只有一个,**且必须使用引用传参,**使用传值方式会引起无限递归

3.若未显式定义,系统生成默认的拷贝构造函数,默认的拷贝构造函数对象按内存存储按字节序完成拷贝,这种拷贝我们叫做浅拷贝,或值拷贝。

浅拷贝:将一个对象中的内容原封不动的拷贝到另一个新对象中,将该种拷贝方式称为浅拷贝

浅拷贝的后果:导致两个对象会使用同一份资源,在对象销毁的时候会导致一份资源释放多次而引起代码崩溃。

9.运算符重载:
为了提高代码的可读性引入了运算符重载 运算符重载是具有特殊函数名的函数,也具有其返回值类型 函数名字以及参数列表,其返回值类型与参数列表与普通函数类似。

注意:
不能通过链接其他符号来创建新的操作符:比如operator@
重载操作符必须有一个类类型或者枚举类型的操作数
用于内置类型的操作符,其含义不能变 比如+ ,不能改变其含义。
作为类成员的重载函数时,其形参看起来比操作数数目少1成员函数的操作符有一个默认的形参this,限定为第一个形参。

前置++和后置++的重载

date类:类中没有涉及到资源管理时,可以不用给出,如果用户需要做其他操作,根据需要给出。
string:类中涉及到资源管理,必须要给出。

《类》《this指针》《构造函数》《析构函数》《拷贝构造函数》《赋值运算符重载》相关推荐

  1. ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  2. ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  3. 信息学奥赛真题解析(玩具谜题)

    玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...

  4. 信息学奥赛之初赛 第1轮 讲解(01-08课)

    信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...

  5. 信息学奥赛一本通习题答案(五)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  6. 信息学奥赛一本通习题答案(三)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  7. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

  8. 信息学奥赛一本通题目代码(非题库)

    为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...

  9. 信息学奥赛一本通(C++版) 刷题 记录

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...

  10. 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离

    首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...

最新文章

  1. RxAndroid/java小记
  2. MySQL快速查询的12条建议,让你不止会用select *
  3. excel 数据导入(附工具类)
  4. Tomcat集群快速入门:Nginx负载均衡配置,常用策略,场景及特点
  5. linux下printf语句执行时间,linux下printf中\n刷新缓冲区的疑问(已解决)
  6. P5709 【深基2.习6】Apples Prologue 苹果和虫子(python3实现)
  7. opencv3/C++ Harris角点、Shi-Tomasi角点亚像素角点
  8. neu1250矩阵快速幂哪~~
  9. 网购成瘾是一种精神障碍?将导致抑郁和破坏社交 网友:没钱即可根治
  10. 任正非:不要过度消费客户及民众对我们的同情与支持
  11. [大学回忆录-思想]再谈我的专业技能
  12. 版权审查只会越来越严
  13. 【Java从0到架构师】Linux 应用 - 软件包管理、软件安装
  14. Java基础笔记(一)
  15. Linux安装docker-ce教程 centos依赖包安装
  16. namecheap如何解析域名
  17. B站网页下载视频(flv格式)
  18. this.$utils 是什么意思是
  19. 训练误差与泛化误差的说明
  20. A newer version of WinPcap (internal version 10.2.0.5002) is already installed on this machine 问题解决

热门文章

  1. python滚动广告牌,Discovery Live 参数化建模案例-设计广告牌风场选址
  2. ubuntu22.04LTS 外接hdmi没有声音
  3. 空间变换网络(STN)
  4. Oracle Analyze 命令 详解
  5. MobiCom2019几篇有意思的文章
  6. Windows生成SSH密钥
  7. JavaScript的toast
  8. STM32模拟I2C协议获取MLX90614红外温度传感器测温数据(Open Drain管脚配置)
  9. oracle如何删除用户的表空间,Oracle 删除用户和表空间
  10. 计算机纳入高考作文,高考作文听人家说今年的高考作文是用计算机批 – 手机爱问...