堆和栈分配
- 在堆上的类对象或者任何变量,一旦声明将会一直存在,直到手动释放
使用new关键字,使用delete释放;可以显示控制生存期
数组使用delete删除时也要使用delete [ ] a;
new关键字作用:1.在堆上分配内存 2.调用类的构造函数
new还能指定分配内存的位置
class Entity{
private:
std::string m_Name;
};
int main(){
int* b=new int[50];
Entity* e;
e=new(b) Entity();//指定b作为其存储的地址
}
- 在栈上存储的类对象或者任何变量,只要作用域运行结束就会释放。栈一般存储比较小的对象