C++之对象模型一

类和对象

三大特性:封装,继承,多态

访问权限
  1. public 公共权限 类内可以访问 类外可以访问
  2. protected 保护权限 类内可以访问 类外 不可以访问 儿子可以访问父亲中的保护内容
  3. private 私有权限 类内可以方位 类外不可以访问 儿子不可以访问父亲中的私有内容
成员属性设置为私有

优点:

  1. 将所有成员属性设置为私有,可以自己控制读写权限
  2. 对于写权限,我们可以检测数据的有效性
对象的初始化和清理
构造函数和析构函数

构造函数:主要作用于创建对象时为对象的成员属性赋值 构造函数由编译器自动调用 无须手动调用
析构函数:主要作用于对象销毁前系统自动调用 执行一些清理工作

构造函数语法:类名(){}

  1. 构造函数 没有返回值也不写void
  2. 函数名称与类名相同
  3. 构造函数可以有参数 因此可以发生重载
  4. 程序在调用对象时候会自动调用构造 无须手动调用 而且只会调用一次

析构函数:~类名(){}

  1. 析构函数 没有返回值 也不写void
  2. 函数名称与类名相同 在名称前加符号~
  3. 析构函数不可以有参数,因此不可以发生重载
  4. 程序在对象销毁前会自动调用析构 无须手动调用 而且只会调用一次
构造函数的分类及调用

两种分类方法

  1. 按参数分为:有参构造 和 无参构造
  2. 按类型分为:普通构造 和 拷贝构造

调用方法

  1. 括号法
Person p1(10);
  1. 显式法
Person p = Person(10);
  1. 隐式转换法
Person p = 10;
拷贝构造函数调用时机
  1. 使用一个已经创建完毕的对象来初始化一个新对象
  2. 值传递的方式给函数参数传值
  3. 用值的方式来返回局部对象
构造函数调用规则
  1. 默认构造函数
  2. 有参函数构造
  3. 拷贝构造函数构造
深拷贝和浅拷贝
  1. 浅拷贝: 简单的赋值拷贝操作
  2. 深拷贝:在堆区重新申请空间,进行拷贝操作
初始化列表
Person():属性(值),属性(值),····{}
Person(int a,int b ,int c):属性(a),属性(b),····{}
类对象作为类成员

当其他类对象作为本类成员,构造时候先构造类对象,再构造自身
析构时:先释放自身对象,再释放类成员

静态成员
静态成员函数
  1. 通过对象函数
  2. 通过类名访问
  3. 只能访问静态成员变量,不能访问非静态成员变量
  4. 静态成员函数也是有访问权限的 类外访问不到私有静态成员函数
静态成员变量
  1. 类内声明,类外初始化
对象模型和this指针
  1. 成员变量和成员函数分开存储
  2. 空对象占用内存空间:一个字节
  3. 只有非静态成员变量属于类对象上
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值