- C++ 内存的分配方式有几种?
- 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量。
- 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
- 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。
- C++ 面向对象的三个基本特征
- 封装:将客观事物抽象成类,每个类对自身的数据和方法实行protection(private, protected, public)
- 继承:广义的继承有三种实现形式:
- 实现继承(指使用基类的属性和方法而无需额外编码的能力)、
- 可视继承(子窗体使用父窗体的外观和实现代码)、
- 接口继承(仅使用属性和方法,实现滞后到子类实现)。
- 前两种(类继承)和后一种(对象组合=>接口继承以及纯虚函数)构成了功能复用的两种方式。
- 多态:是将父对象设置成为和一个或更多的与他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。
- 简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针