类和对象介绍
访问限定符 \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指针是隐含的
————————————————————————
但是大家看这个代码就会出现问题
在使用过程会解引用空指针