C++类_c类火灾是指什么火灾

构造函数存在返回值,指向对象的首地址

如类有虚函数,则该类就有一个虚函数列表,所有该类的对象都共享这个虚函数表

1浅拷贝和深拷贝

1 浅拷贝

仅拷贝对象的所有成员,不包括其引用的对象(例如指针指向的其他内容)

2 深拷贝

除了拷贝成员本身的值之外,还拷贝的成员指向的动态内存区域的内容

2多态(Polymorphism)

指同一接口在不同对象上表现出不同行为。实现了“一个接口,多种方法”的编程范式,大幅提升代码的灵活性和可扩展性。

1)编译时多态,函数重载、运算符重载、模板

2)运行时多态,虚函数 + 继承 + 基类指针/引用。虚函数表,动态绑定机制

类标记为final,表示类无法被继承

方法标记为final,表示子类不能重写该方法

组合优于继承,多用组合少用继承

存在纯虚函数的类是抽象类,不能实例化

3内存对齐

#pragma pack (n) 作用:C编译器将按照n个字节对齐。
#pragma pack () 作用:取消自定义字节对齐方式。

#pragma pack(push, 1) 设置对齐方式, 把原来对齐方式压栈,并设置新的对齐方式

#pragma pack(pop); 恢复设置前的对齐方式

4 内存模型

内存模型分为5个区:栈区、堆区、静态区、常量区、代码区

栈区:存放函数的参数值、局部变量等,由编译器自动分配和释放

堆区:就是通过new、malloc、realloc分配的内存块

静态区:全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后,由系统释放

常量区:常量存储在这里,不允许修改。


代码区:存放函数体的二进制代码。

原文链接:,转发请注明来源!