- 博客(5)
- 收藏
- 关注
原创 内存管理(C++面试)
new分配的内存用delete释放,使用new[]分配的内存用delete[]释放,如果不释放,会导致内存泄漏。new后忘了delete 异常导致delete未执行 循环引用(shared_ptr互相引用)C++内存和分配主要分为五个区,分别是栈区、堆区、全局/静态存储区、常量存储区、代码区。优先使用智能指针、使用RAll技术(资源获取及初始化)技术、避免手动管理内存。内存泄漏指的是已经分配的内存不再被程序使用,但是没有被释放。使用new和delete操作符手动管理内存。动态分配的内存,手动管理。
2025-05-18 14:17:56
182
原创 面向对象的三大特性(C++面试)
动态多态的地址绑定是在运行时确定的,通过虚函数和继承实现的。动态多态就是通过父类指针或引用调用虚函数时,实际上调用子类对象的对应的函数。:继承允许一个类(子类)基于另一个类(父类)来构建,子类可以继承父类的属性和方法,并可以添加新的特性或覆盖父类的行为。静态多态的地址绑定是在编译的时候进行的,主要是通过函数重载和运算符重载实现的。1.提高代码灵活性和可扩展性 2.简化代码,减少条件语句 3.便于实现面向接口编程。通过基类指针或引用调用派生类的函数实现不同的行为。“一个接口,多种实现”。
2025-05-16 15:59:15
193
原创 内联函数(C++面试)
减少函数调用的开销,提高程序的执行效率,特别是对一些小的、频繁调用的函数,使用内联函数可以显著提高性能。关键字来建议编译器将函数调用替换为函数体本身的代码,以减少函数调用的开销。内联函数在编译时展开,没有函数调用的开销,但是可能会增加代码的体积。普通函数在运行时进行调用,有一定函数调用的开销,但是代码更紧凑。内联函数是C++中的一种函数优化机制,通过在函数声明前加上。简单讲,内联函数就是在编译时将函数体插入到调用处的函数。内联函数是真正的函数,有类型检查和作用域规则。只是建议,最终是否内联由编译器决定。
2025-05-15 19:08:59
176
原创 结构体与联合体(C++面试)
联合体是一种特殊的数据类型,允许在相同的内存位置存储不同的数据类型。结构体是将不同类型的数据组合成一个整体的数据类型。
2025-05-13 14:48:16
178
原创 引用与指针的区别(C++面试)
引用不占用内存空间,必须绑定有效的对象,更安全,不支持算术运算,(++)针对的是绑定的变量,而不是引用的本身。指针通过*解引用来访问指针指向的变量值,通过&获取变量的地址,可以指向nullptr表示空指针。指针是一个变量,存储地址,占用存储空间,可以指向一块已经释放的内存,他支持指针的算术运算。引用就是像普通的变量一样使用,不需要其他的操作,不能为空,必须绑定有效的对象。引用必须初始化,并且一旦初始化是不可修改的,他的本质是对变量起别名。指针可以不初始化,可以指向不同的对象,是可变的。
2025-05-12 12:15:42
158
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人