C++学习笔记(二十一):c++ 创建并初始化对象

  • c++主要有两种大的方式去创建并初始化对象,一种是在栈上创建,一种是在堆上创建,接下来分别对两种方式进行描述。
  • 在栈上创建,作用域为声明对象所在的作用域,出了作用域,类对象自动释放内存
  • C++学习笔记(二十一):c++ 创建并初始化对象_第1张图片
  • 在堆上创建,出了作用域不主动释放内存,类对象仍会存在内存中,会造成内存泄漏
  • C++学习笔记(二十一):c++ 创建并初始化对象_第2张图片
  • 可以在栈上创建类对象,建议在栈上创建,除了上图中所示的情况以及需要创建大量的类对象时可以使用new在堆上创建,因为栈的空间很小,创建大量的类对象在栈上可能导致栈空间不够。
  • 接下来讲诉c++中的new关键字:
  • new操作就是在内存中找打一块足够大满足我们的需求的内存,通过维护一个闲时列表来完成在内存中的搜索。
  • 当用new操作符操作对象时不仅分配内存,还会调用类的构造函数,如Entiry* e = new Entity();
  • 使用new操作符后一定要使用delete来释放分配的内存,delete e;释放数组则使用delete[] e;

你可能感兴趣的:(c++,学习,笔记)