C++自学笔记(3)

理解类与对象在编程中的应用

类和对象

对象

具体指代一个事物

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

886235-20160222163401041-634279190.png

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

886235-20160222163420698-1044334255.png

对象实例化

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

两种方式

  1. 从栈中实例化

886235-20160222164126448-300956705.png

  1. 从堆中实例化

886235-20160222164139026-606475866.png

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

对象成员的访问

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

886235-20160222164149541-689186607.png

初识string

  • 初始化string对象的方式

886235-20160222163501432-773537111.png

  • string的常用操作。

886235-20160222163510573-1531173845.png

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

886235-20160222163518729-533840597.png

类外定义

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

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

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

886235-20160222163531979-1543686359.png

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

886235-20160222163545354-28048976.png

构造函数

内存区域

886235-20160222163556510-147240774.png

构造函数

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

886235-20160222163605854-1258126517.png

886235-20160222163613963-956259968.png

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

886235-20160222163627166-2063954821.png

初始化列表

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

886235-20160222163639932-730234506.png

特性:

886235-20160222163651354-1503656622.png

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

拷贝构造函数

886235-20160222163701713-1551661494.png

886235-20160222163707307-918882813.png

析构函数

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

886235-20160222163718916-22995114.png

对象的生命历程

886235-20160222163901776-324033354.png

转载于:https://www.cnblogs.com/Wjianting/p/5207542.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值