C++自学笔记(3)

类和对象

对象

具体指代一个事物

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

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

对象实例化

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

两种方式

  1. 从栈中实例化

  1. 从堆中实例化

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

对象成员的访问

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

初识string

  • 初始化string对象的方式

  • string的常用操作。

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

类外定义

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

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

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

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

构造函数

内存区域

构造函数

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

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

初始化列表

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

特性:

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

拷贝构造函数

析构函数

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

对象的生命历程

原文地址:https://www.cnblogs.com/Wjianting/p/5207542.html