C++的类与C语言的struct结构体有啥区别?
默认的访问限定符不同
类的简要
- 关键字:class
- {}里面是类的主体,特别注意:{}后面的;不可以省略
- 类中的变量叫做成员变量,类中的函数叫做成员函数
- 类中访问有三种访问权限,分别是:private,protect,public
- 访问限定符的作用域从访问限定符开始到下一个访问限定符结束,如果后面没有其他访问限定符,则在遇到};就结束作用域
声明和定义分离时,有可能两个类中会有相同的函数,所以,在函数名那里加入类名就可以避免此冲突。类本身就是一个域。
实例化的对象中,每一个对象只存储他们的成员变量,成员函数存储在公共区域(代码区),这种方式的存储减少了空间浪费。 在使用成员函数时,根据函数名call地址进行调用
如果一个类中没有成员变量,该类的大小为1字节,而不是0字节,这里大小给1字节的原因是标志该类的存在
类的大小
类同样遵守内存对齐的规则
为什么需要内存对齐?
读取变量大小时可能会出现重复读取的情况再进行内存组合,效率低
this指针
this指针是类中成员函数的第一个隐含的参数
特点:
1.不可以在成员函数形参或者实参那里显示写,会报错
2.可以在成员函数内部使用
3.this不能被修改
4.this指针存放在栈上,This指针是一个形参,形参在栈上存储