封装-类和对象:
类和对象:
对比类型和变量
可以分为动态部分(变量的计算)和静态部分(变量的存储)
Cat cat//栈空间
Cat* cat=new Cat();//堆空间
内存空间:代码区,常量区,堆区,栈区
类占用多少个字节
只关注静态部分->类的成员属性
虚函数->创建一个8个字节的虚函数表
使用#pragma pack(1)可以取消内内存对齐:通讯协议序列化和反序列化时用
让方法跟着类走
此时对象则通过this指针来调用方法
say(people*this,string word){}
访问权限(针对外部)
public/private/protected(允许子类访问) class默认私有,struct默认共有(兼容以前的C的代码)
C语言基本的作用域{ }之间
友元访问:
C++通过友元允许类的非共有成员被其他类或非成员函数访问
特性:
单向性
不可继承性
不具传递性