如何创建一个动态分配的c++对象及其指针

How to create a dynamically allocated C++ Object and its pointer?

本文关键字:对象 c++ 指针 动态分配 何创建 创建 一个      更新时间:2023-10-16

这可能是一个新手问题,但我还是问了自己这个问题。

如果我有一个Object类定义:

Object *p = new Object();

这个代码创建一个指针p,并在位置p,放置一个Object对象,正确吗?

这意味着:

  • 为Parent类的地址准备一个变量并命名为p
  • 分配足够的内存来存储父类的内容
  • 调用父类的构造函数
  • 在变量p中存储该内存的地址。

编辑:回复评论:

这不是构造类的唯一方法。另一种是静态地分配一个类,例如

Parent p;

在这种情况下,您不将指向Parent类的指针存储在变量p中,而是存储整个类本身。在这种情况下:

  • 类的内存位于为函数保留的帧的堆栈中,该帧定义了该变量(当程序加载到内存中时,堆栈只分配一次)
  • 构造函数在程序到达变量声明点时自动调用。
  • 当程序离开变量的作用域时,自动调用
  • 析构函数
  • 没有内存被释放(至少对于Parent类的实例没有),因为堆栈稍后被重用。