类class

  • 类的名字就是用户自定义的类型的名字。可以像使用基本类型那样来使用它。
  • 一个类所占用的内存空间的大小,等于所有成员变量的大小之和。
  • 类之间可以用 “=”进行赋值,但是不能用 “==”,“!=”,“>”,“<”“>=”“<=”进行比较,除非这些运算符经过了“重载”。
  • 使用类的成员变量和成员函数:
    • 对象名.成员名
    • 指针->成员名
    • 引用名.成员名
  • 类成员可被访问的范围:
    • private: 私有成员,只能在成员函数内访问。
    • public : 公有成员,可以在任何地方访问。
    • protected: 保护成员,只可以在成员函数和其的子类中访问。
  • 以上三种关键字出现的次数和先后次序都没有限制。
  • 在类的成员函数内部,能够访问:
    • 当前对象的全部属性、函数;
    • 同类其它对象的全部属性、函数。
  • 在类的成员函数以外的地方,只能够访问该类对象的公有成员。
  • 成员函数同样可以重载及缺省参数。

构造函数

  • 成员函数的一种:

    • 名字与类名相同,可以有参数,不能有返回值(void也不行)。
    • 作用是对对象进行初始化,如给成员变量赋初值。
    • 如果定义类时没写构造函数,则编译器生成一个默认的无参数的构造函数。
      • 默认构造函数无参数,不做任何操作。
  • 如果定义了构造函数,则编译器不生成默认的无参数的构造函数。
  • 对象生成时构造函数自动被调用。对象一旦生成,就再也不能在其上执行构造函数。
  • 一个类可以有多个构造函数。

复制构造函数

  • 只有一个参数,即对同类对象的引用。
  • 形如 X::X( X& )或X::X(const X &), 二者选一后者能以常量对象作为参数
  • 如果没有定义复制构造函数,那么编译器生成默认复制构造函数。默认的复制构造函数完成复制功能。
  • 如果定义的自己的复制构造函数, 则默认的复制构造函数不存在。
  • 不允许有形如 X::X( X )的构造函数。
  • 复制构造函数起作用的三种情况:
    • 当用一个对象去初始化同类的另一个对象时。
    • 如果某函数有一个参数是类A的对象,那么该函数被调用时,类A的复制构造函数将被调用。
    • 如果函数的返回值是类A的对象时,则函数返回时,A的复制构造函数被调用。

类型转换构造函数

  • 定义转换构造函数的目的是实现类型的自动转换。
  • 只有一个参数,而且不是复制构造函数的构造函数,一般就可以看作是转换构造函数。
  • 当需要的时候,编译系统会自动调用转换构造函数,建立一个无名的临时对象(或临时变量)。

析构函数

  • 名字与类名相同,在前面加‘~’,没有参数和返回值,一个类最多只能有一个析构函数。
  • 析构函数对象消亡时即自动被调用。可以定义析构函数来在对象消亡前做善后工作,比如释放分配的空间等。
  • 如果定义类时没写析构函数,则编译器生成缺省析构函数。缺省析构函数什么也不做。
  • 如果定义了析构函数,则编译器不生成缺省析构函数。
    查看我的C++学习计划

转载于:https://www.cnblogs.com/jhy16193335/p/8425088.html

C++笔记(2018/2/7)相关推荐

  1. 复习笔记2018.8.3

    复习笔记2018.8.3 1,"a" + "b" + 3 strcat double d = 3 object obj = d int i = (int)obj ...

  2. 咸鱼CAD笔记—2018切换经典模式

    咸鱼CAD笔记-2018切换经典模式 1.打开CAD2018在界面右下角,点击辅助状态栏里倒三角,点击自定义. 2.打开自定义的界面,在折叠图标中打开"工作空间",选择" ...

  3. 云知梦css学习笔记(2018年4月1日15:58:07)

    好久不见,,本次更新css的学习笔记,不得不说,前端很有趣,基础很重要. 笔记截图: 下载地址: https://download.csdn.net/download/juliantem/103210 ...

  4. 学习Java笔记2018.3.31

    Java简介: Java特点: * 纯面向对象: * 可移植性高,或者说与平台无关的语言(所有的数据类型在所有的操作系统中占据相同的内存) * 严格区分大小写: 复制代码 Java两种核心机制: 1. ...

  5. js学习笔记-2018年7月12日

    ---------------------------打印输出------------------------------ console.log在浏览器控制台打印 变量本身就是没类型的变量的类型取决 ...

  6. 第一章 管理与管理学 第一节 笔记2018

    管理学的研究对象 管理学是研究管理活动的一般规律的科学. 管理学的特性 综合性 一般性.管理学不像数学那样精确,但这种不精确性并不降低管理理论的指导作用.管理学作为"一般管理学", ...

  7. 航信笔记2018/09/03

    > 今天正式写同ssc taskbill接口 �� 问题1:如何控制表的数据,在久其系统的显示 *解决思路:表的字段挨个进行空值测试,查询此字段对97平台显示效果影响. 例子见下图:* 问题2: ...

  8. class3 队列、栈和链表(左程云左神算法 初级笔记 2018)

    class 3 用数组结构实现大小固定的队列和栈 package com.godzuo.java;/*** @author quanquan* @create 2020-04-20-22:36*/ p ...

  9. class4 二叉树(左程云左神算法 初级笔记 2018)

    class 4 DAY6 实现二叉树的先序.中序.后序遍历,包括递归方式和非递归方式 package com.godzuo.java;import java.util.Stack;/*** @auth ...

  10. Merriam-Webster's Vocabulary Builder 学习笔记 Unit 6

    Unit 6 [equ-]:"equal" equalize equivalent:相等的 equilateral:等边的 equation:方程式:等式:等同看待:(多种因素的) ...

最新文章

  1. 机器学习(6)KNN算法(K-近邻算法)
  2. 尚硅谷Java视频教程导航(学习路线图)
  3. 一元二次方程abc决定什么_你知道什么是ABC理论吗?看完受益终生,推荐收藏
  4. log4j 2.x 架构
  5. 小师妹学JVM之:JIT中的PrintCompilation
  6. Linux i2c子系统驱动probe
  7. jpa分页查询_如何来实现SpringBoot应用的JPA数据持久化和热插拔
  8. Tomcat在Linux上的安装
  9. jQuery的鼠标事件总结
  10. linux 加速播放软件,VirtualBox 6.1首次推出Linux 5.4支持,加速的视频播放及更多功能...
  11. 基于51单片机和 ADC0808 ADC0809的自动数字电压表proteus仿真程序设计
  12. 修改select2未搜索到数据时的提示语
  13. mysql truncate分区表_MySQL分区表的管理~1
  14. 苹果(APPLE)开发者账号说明及注册流程(99美元公司版/个人版及299美元企业版)
  15. HTML制作虾米音乐,如何用jQuery仿虾米音乐网完整源码
  16. python小游戏——魂斗罗这是你的童年吗?
  17. HttpClient上传文件到微信素材乱码问题解决
  18. chatgpt智能问答微信小程序+后端源码+视频搭建教程
  19. windows10系统怎么快速截屏
  20. 地质勘查项目管理困难重重,需要专业软件来解决

热门文章

  1. android身高控件_安卓身高计算器(标准)
  2. 用python实现分段函数_在Python中绘制分段函数
  3. c++ 获取系统时间_错过长假,我还有时间做近视手术么?
  4. 计算机网络作业第六章,计算机网络与通信第6章习题.doc
  5. BicycleGAN详解与实现
  6. 了解C ++中的Vector insert()
  7. linux执行多个命令_您必须知道的前50多个Linux命令
  8. primefaces_Primefaces工具栏,工具栏组和工具提示
  9. java内部类_Java内部类
  10. Python XML解析器– ElementTree