gpt4 book ai didi

c++ - C++ main函数中的继承初始化

转载 作者:行者123 更新时间:2023-11-28 03:01:19 24 4
gpt4 key购买 nike

<分区>

过去几周我一直在学习和试验 C++ 中的继承和多态性。

很少有语法总是让我难以理解,主要是从 main 函数调用对象。

例如:

#include <iostream.h>

using namespace std;

class Base
{
public:
Base(){ cout<<"Constructing Base";}

virtual ~Base(){ cout<<"Destroying Base";}
};

class Derive: public Base
{
public:
Derive(){ cout<<"Constructing Derive";}

~Derive(){ cout<<"Destroying Derive";}
};

void main()
{
Base *basePtr = new Derive();

delete basePtr;
}

这是我的问题:

Base *basePtr = new Derive(); 这个语法被调用时实际发生了什么?有什么优势?

据我所知,它调用派生类对象并将其存储在指向基类对象的指针中。我对么?如果是,我们为什么要将它存储在基类中?

为了消除我的疑虑,我查看了类对象的内存布局和反汇编,但它让我更加困惑。

谁能告诉我如何理解这种语法?

24 4 0
文章推荐: c++ - 为什么 const char* 返回的值丢失了两个字符?但是在返回之前打印正确的值
文章推荐: javascript - 如果所选选项包含 HTML/JavaScript (JQuery) 中的 ID ='answer',则从