类和对象(上)

类和对象介绍

访问限定符 \color{orange}{访问限定符} 访问限定符
public( 公有 \color{blue}{公有} 公有
protested)( 保护的 \color{blue}{保护的} 保护的)
private(私有的)

当在类里面没有给特地限定符的时候
相当于私有是无法访问的
在这里插入图片描述
在这里插入图片描述
在编译器上就会有报错

在这里插入图片描述

其中当在private限定符出现的下面如果出现了public的话同样就是在两个限定符之间进行作用
在这里插入图片描述
在访问的时候就只有三个在public的地方可以访问

类的定义

在c语言的时候我们都是把声明和定义分离
在c++的时候我们可以放在一起的
在这里插入图片描述
还有一种定义的方式就是把定义和声明分离

在这里插入图片描述
就是要在定义的函数前加上类域的限定符

类的实例化

类是对 对象 \color{red}{对象} 对象的描述
相当于一个模型的东西
并没有分配实际的内存空间来存储它

类对象模型

如何计算类对象的大小

在类里面不仅有成员变量还有成员函数
在c语言的时候结构体也需要计算大小
但是就涉及到 内存大小对齐 \color{purple}{内存大小对齐} 内存大小对齐
在这里插入图片描述
int大小为4,有3个int
在这里插入图片描述
那函数的的呢???

在这里插入图片描述
这个图就是类成员的存储方式

类成员函数表
类成员函数存在公共代码区
那如果是空类的话
在这里插入图片描述
计算结果默认就是1,用来表示已经对象实例化了

结构体的内存对齐规则
在这里插入图片描述
这里还有几个问题
欢迎大家在评论区回答

this指针

1.this指针的类型:类类型* const
结合成员函数中,不能给this指针赋值
2.只能在“成员函数”的内存使用
3.this 本质是成员函数的形参 \color{green}{本质是成员函数的形参} 本质是成员函数的形参
在对象调用成员函数的时候,将对象地址作为实参传递给this的形参,所以 对象中不存储 t h i s 指针 \color{blue}{对象中不存储this指针} 对象中不存储this指针

所以这个 t h i s 指针是隐含的 \color{blue}{所以这个this指针是隐含的} 所以这个this指针是隐含的
在这里插入图片描述

————————————————————————

但是大家看这个代码就会出现问题
在这里插入图片描述
在使用过程会解引用空指针

  • 41
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值