gpt4 book ai didi

c++ - 如何使用malloc通过基类的指针为派生类的对象分配内存?

转载 作者:太空宇宙 更新时间:2023-11-04 14:53:59 24 4
gpt4 key购买 nike

例如有一条链

class A
{
int a;
int b;
public:
A();
};

class B: public A
{
int c;
char b;
public:
B()
};

以通常的方式创建派生类的对象,我们可以使用这种形式

A* ptr = new B()

如何使用 malloc 做同样的事情?

最佳答案

Malloc 返回一个指向原始分配内存的 void* 指针。只需在该内存上使用放置新运算符。

void* mem = malloc( sizeof(B) );
A* ptr = new(mem) B(); // builds object in location pointed by mem

placement new 不分配内存,它只是在给定的地方构造你的对象。

关于c++ - 如何使用malloc通过基类的指针为派生类的对象分配内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29340025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com