记录一下C++常见的面试八股文。
C++内存分配有哪几种方式?
- 从静态存储区分配:内存在程序编译的时候已经分配好,这块内存在整个程序的运行期间都存在,例如全局变量、静态变量。
- 在栈上创建:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存有限。
- 在堆上分配:程序在运行的时候用malloc或new申请任意多的内存,由程序员手动free或delete来释放内存。动态内存的生存期有开发者自己决定,使用非常灵活,但也会导致内存泄漏的问题。
struct和class的异同?
- 同:struct和class定义类,都可以继承。
- 异:struct的默认继承权限和默认访问权限是public,而class的默认继承权限和默认访问权限是private。