类和对象

对象

具体指代一个事物

  • 为了便于管理,将信息抽象。

  • 目的不同,抽象的信息也不同(选择性暴露),也就是封装。
  • 通过访问限定符,选择想要暴露和隐藏的信息。

对象实例化

计算机根据一个类的设计,制造出多个对象的过程

两种方式

  1. 从栈中实例化

  1. 从堆中实例化

注意:从堆中实例化需要申请与释放内存

对象成员的访问

  • 从栈中实例化对象后,可以通过点来访问
  • 从堆中实例化对象后,需要通过指针访问

初识string

  • 初始化string对象的方式

  • string的常用操作。

*需要注意,string的一种连接方式是错误的。

类外定义

  • 类内定义:成员函数的函数体写在类的内部。

特点:编译器会将其优先编译成内联函数

  • 类外定义分为两种:同文件类外定义份文件类外定义
  1. 同文件类外定义:成员函数体与类在同一个函数中,但不在类中。

  1. 份文件类外定义:新建一个cpp文件,将成员函数体与类份文件存放。

构造函数

内存区域

构造函数

在对对象初始化时,为了避免忘记调用初始化函数,或多次重复调用,需要采用构造函数。将初始化代码写在构造函数内,就可以起到初始化的作用,构造函数在实例化对象时只会被调用一次。

*默认构造函数:在实例化对象时不需要传递参数的构造函数

初始化列表

  • 构造函数后用冒号隔开
  • 对多个数据成员初始化时中间要用逗号隔开
  • 赋值是要用括号而不能用等号

特性:

*初始化列表的必要性:如果参数被const修饰,是不能够被构造函数初始化的,但是可以通过初始化列表对其进行初始化。

拷贝构造函数

析构函数

  • 任务:归还系统资源,收拾最后残局
  • 定义格式:~类名()
  • 析构函数的特性:

对象的生命历程

C++自学笔记(3)的更多相关文章

  1. 《Linux内核设计与实现》课本第四章自学笔记——20135203齐岳

    <Linux内核设计与实现>课本第四章自学笔记 进程调度 By20135203齐岳 4.1 多任务 多任务操作系统就是能同时并发的交互执行多个进程的操作系统.多任务操作系统使多个进程处于堵 ...

  2. 《Linux内核设计与实现》课本第三章自学笔记——20135203齐岳

    <Linux内核设计与实现>课本第三章自学笔记 进程管理 By20135203齐岳 进程 进程:处于执行期的程序.包括代码段和打开的文件.挂起的信号.内核内部数据.处理器状态一个或多个具有 ...

  3. 《Linux内核设计与实现》课本第十八章自学笔记——20135203齐岳

    <Linux内核设计与实现>课本第十八章自学笔记 By20135203齐岳 通过打印来调试 printk()是内核提供的格式化打印函数,除了和C库提供的printf()函数功能相同外还有一 ...

  4. python自学笔记

    python自学笔记 python自学笔记 1.输出 2.输入 3.零碎 4.数据结构 4.1 list 类比于java中的数组 4.2 tuple 元祖 5.条件判断和循环 5.1 条件判断 5.2 ...

  5. ssh自学笔记

    Ssh自学笔记 Ssh简介 传统的网络服务程序,如:ftp.pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据.而且,这些服务 ...

  6. JavaScript高级程序设计之自学笔记(一)————Array类型

    以下为自学笔记. 一.Array类型 创建数组的基本方式有两种: 1.1第一种是使用Array构造函数(可省略new操作符). 1.2第二种是使用数组字面量表示法. 二.数组的访问 2.1访问方法 在 ...

  7. vue 自学笔记记录

    vue 自学笔记(一): 知识内容:  安装vue ,创建vue实例,安装第一个组件,单项数据流 https://www.cnblogs.com/baili-luoyun/p/10763163.htm ...

  8. JS自学笔记05

    JS自学笔记05 1.例题 产生随机的16进制颜色 function getColor(){ var str="#"; var arr=["0","1 ...

  9. JS自学笔记04

    JS自学笔记04 arguments[索引] 实参的值 1.对象 1)创建对象 ①调用系统的构造函数创建对象 var obj=new Object(); //添加属性.对象.名字=值; obj.nam ...

  10. JS自学笔记03

    JS自学笔记03 1.函数练习: 如果函数所需参数为数组,在声明和定义时按照普通变量名书写参数列表,在编写函数体内容时体现其为一个数组即可,再传参时可以直接将具体的数组传进去 即 var max=ge ...

随机推荐

  1. oracle 判断字段相等,但类型不同引起的性能问题

    最近做ogg数据同步,然后触发器加工数据放入另外一张表,由于数据量很大,一分钟几万条数据,由于一些条件字段类型不匹配,引起ogg阻塞,比较头大.最后分析发现性能问题.请看下图: phmxxh是varc ...

  2. JS基础-组成

    类型 前缀 类型 实例 数组 a Array aItems 布尔值 b Boolean bIsComplete 浮点数 f Float fPrice 函数 fn Function fnHandler ...

  3. linux中服务环境的搭建

    一.Samba服务 samba服务的安装及配置: sudo apt-get install samba 二.配置: 1.创建一个需要共享的目录,并修改权限: lpf@ubuntu:~$ mkdir l ...

  4. C#框架学习资料集锦

    1.AllEmpty 的[从零开始编写自己的C#框架]系列 从零开始编写自己的C#框架(1)——前言从零开始编写自己的C#框架(2)——开发前的准备工作从零开始编写自己的C#框架(3)——开发规范从零 ...

  5. 为eclipse添加源代码

    看到这个页面,直接点击 红色区域 attach source 关联源代码,进入到如下页面: 点击第二个选择外部的路径,点击导入文件夹,也就是解压出来的src文件夹(不建议直接导整个jar包,虽然也可以 ...

  6. 20155325 Exp1 PC平台逆向破解(5)M

    Exp1 PC平台逆向破解(5)M 阶段性截图 基础知识 掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码 汇编指令 作用 机器码 NOP "空指令".执行到NOP ...

  7. [JOISC2018]道路建设 LCT

    [JOISC2018]道路建设 LOJ传送门 考的时候打的大暴力,其实想到了LCT,但是思路有点没转过来.就算想到了估计也不能切,我没有在考场写LCT的自信... 其实这题不是让你直接用LCT维护答案 ...

  8. jQuery js 格式化数字

    写程序与的时候,有些地方需要js或者jQuery取值,然后将50000000.00格式化成50,000,000.00这种形式: 首先创建formatCurrency.js,代码如下: function ...

  9. jquery validate 使用示例

    var el = { $jsFrom: $('.js-form'), }; // 检测用户名是否存在 jQuery.validator.addMethod("isexist", f ...

  10. pymysql模块使用教程

    一.操作数据库模板 pymysql是Python中操作mysql的模块,(使用方法几乎和MySQLdb相同,但是在Python3中,mysqldb这个库已经不能继续使用了) 下载安装方法: 方法一. ...