如何在C++中分配子类的对象?

Zia*_*man 3 c++ oop memory-management

我对C++中的继承概念感到困惑,假设我们有一个名为computer的类,我们公开从计算机类继承了一个名为laptop的类.现在当我们在main函数中创建类laptop的对象时,内存中会发生什么?请解释.

bma*_*ies 11

class Computer {
  public:
   Computer() { /* whatever */}
   /* whatever */
};

class Laptop : public Computer {
   public:
    Laptop() { /* whatever */ }
  /* whatever */
};
Run Code Online (Sandbox Code Playgroud)

然后 ...

x = new Laptop();
Run Code Online (Sandbox Code Playgroud)

编译器实现的目的是:

  1. ptr = ::operator new(sizeof(Laptop))
  2. Computer::Computer(ptr)
  3. Laptop::Laptop(ptr)
  4. x = ptr

堆栈相当于我作为练习留给读者.

  • 然后你需要重写这个问题.这是对所写的问题的直接回应,正如投票所见证的那样.如果你澄清我将添加到答案中的问题. (3认同)