C++自学笔记(3)
类和对象
对象
具体指代一个事物
类
- 为了便于管理,将信息抽象。

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

对象实例化
计算机根据一个类的设计,制造出多个对象的过程
两种方式
- 从栈中实例化

- 从堆中实例化

注意:从堆中实例化需要申请与释放内存
对象成员的访问
- 从栈中实例化对象后,可以通过点来访问
- 从堆中实例化对象后,需要通过指针访问

初识string
- 初始化string对象的方式

- string的常用操作。

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

类外定义
- 类内定义:成员函数的函数体写在类的内部。
特点:编译器会将其优先编译成内联函数
- 类外定义分为两种:同文件类外定义,份文件类外定义。
- 同文件类外定义:成员函数体与类在同一个函数中,但不在类中。

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

构造函数
内存区域

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


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

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

特性:

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


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

对象的生命历程

C++自学笔记(3)的更多相关文章
- 《Linux内核设计与实现》课本第四章自学笔记——20135203齐岳
<Linux内核设计与实现>课本第四章自学笔记 进程调度 By20135203齐岳 4.1 多任务 多任务操作系统就是能同时并发的交互执行多个进程的操作系统.多任务操作系统使多个进程处于堵 ...
- 《Linux内核设计与实现》课本第三章自学笔记——20135203齐岳
<Linux内核设计与实现>课本第三章自学笔记 进程管理 By20135203齐岳 进程 进程:处于执行期的程序.包括代码段和打开的文件.挂起的信号.内核内部数据.处理器状态一个或多个具有 ...
- 《Linux内核设计与实现》课本第十八章自学笔记——20135203齐岳
<Linux内核设计与实现>课本第十八章自学笔记 By20135203齐岳 通过打印来调试 printk()是内核提供的格式化打印函数,除了和C库提供的printf()函数功能相同外还有一 ...
- python自学笔记
python自学笔记 python自学笔记 1.输出 2.输入 3.零碎 4.数据结构 4.1 list 类比于java中的数组 4.2 tuple 元祖 5.条件判断和循环 5.1 条件判断 5.2 ...
- ssh自学笔记
Ssh自学笔记 Ssh简介 传统的网络服务程序,如:ftp.pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据.而且,这些服务 ...
- JavaScript高级程序设计之自学笔记(一)————Array类型
以下为自学笔记. 一.Array类型 创建数组的基本方式有两种: 1.1第一种是使用Array构造函数(可省略new操作符). 1.2第二种是使用数组字面量表示法. 二.数组的访问 2.1访问方法 在 ...
- vue 自学笔记记录
vue 自学笔记(一): 知识内容: 安装vue ,创建vue实例,安装第一个组件,单项数据流 https://www.cnblogs.com/baili-luoyun/p/10763163.htm ...
- JS自学笔记05
JS自学笔记05 1.例题 产生随机的16进制颜色 function getColor(){ var str="#"; var arr=["0","1 ...
- JS自学笔记04
JS自学笔记04 arguments[索引] 实参的值 1.对象 1)创建对象 ①调用系统的构造函数创建对象 var obj=new Object(); //添加属性.对象.名字=值; obj.nam ...
- JS自学笔记03
JS自学笔记03 1.函数练习: 如果函数所需参数为数组,在声明和定义时按照普通变量名书写参数列表,在编写函数体内容时体现其为一个数组即可,再传参时可以直接将具体的数组传进去 即 var max=ge ...
随机推荐
- mysql8.0版本skip-grant-tables出现的新问题
MySQL 初始化 mysqld --initialize 的时候会有密码,就这个样子, 可是毕竟总有人跟我一样,不熟悉安装过程,没有注意这一密码这一项,导致你现在不知道密码的尴尬处境,或者说你是正常 ...
- MIPS架构——汇编代码转机器代码编译器 Matlab GUI
MIPS架构下的MCU,指令集包含R-Type.I-Type.J-Type三种,在数电课程设计时为了给MCU编写指令集,需要将汇编语言转化成机器代码,这里分享一下自己写的Matlab 的 GUI. 主 ...
- SAP查找用户的登录记录
1.可以使用USR02中有个上次登陆日期和登陆时间. 2.用SE38跑下RSUSR200,输入用户名即可查询上次登陆日期 3.SU10可以查到
- MongoDB操作-备份和恢复,导入和导出
mongodb数据备份和恢复主要分为二种:一种是针对库的mongodump和mongorestore,一种是针对库中表的mongoexport和mongoimport 1. 常用命令格式 mongod ...
- [BZOJ3451]normal 点分治,NTT
[BZOJ3451]normal 点分治,NTT 好久没更博了,咕咕咕. BZOJ3451权限题,上darkbzoj交吧. 一句话题意,求随机点分治的期望复杂度. 考虑计算每个点对的贡献:如果一个点在 ...
- P4546 [THUWC2017]在美妙的数学王国中畅游
如果只有第3个操作,那么这就是个sd题,随便lct搞搞就过去了 然后就是一个神仙东西 taylor公式 我不会,看gsy博客https://www.cnblogs.com/zhoushuyu/p/81 ...
- 【bzoj1066】【luogu2472】[SCOI2007]蜥蜴
1066: [SCOI2007]蜥蜴 Time Limit: 1 Sec Memory Limit: 162 MB Description 在一个r行c列的网格地图中有一些高度不同的石柱,一些石柱上 ...
- pycharm导入路径问题
博主在导入自定义模块式出现模块下有红色波浪线,如下: 例如from conf import setting 导入时会从当前目录下找找到youkuClient就不会再往下找了,所以引入模块的路径不能夸路 ...
- H5拖拽 构造拖拽及缩放 pdf文件转换为html预览
前言: 协助项目需要实现一个签名的功能. 功能说明:1.有文本签名和头像签名.2.头像签名需要实现可拖拽功能.3.需要展示的是pdf的文件并需要获取签名位于pdf文件的相对位置. 功能一:实现拖拽 思 ...
- java单元测试的用法及原因
1.ctrl+n 生成 Junit Test Case 2.选择文件夹 3.superClass 继承BaseUnitTest 4.next后 打勾选择需要单元测试的方法. 5.在生成的test ...