gpt4 book ai didi

c++ - 放置新的和非默认的构造函数

转载 作者:IT老高 更新时间:2023-10-28 23:14:23 27 4
gpt4 key购买 nike

我可以在带有参数的构造函数上调用 C++ 放置 new 吗?我正在实现一个自定义分配器,并希望避免将功能从非默认构造函数移动到 init 函数中。

class CFoo
{
public:
int foo;
CFoo()
{
foo = 0;
}

CFoo(int myFoo)
{
foo = myFoo;
}
};

CFoo* foo = new (pChunkOfMemory) CFoo(42);

我希望使用第二个构造函数在 pChunkOfMemory 构造一个 CFoo 类型的对象。使用 operator new 时,我是否只使用默认构造函数?

解决了!我没有#include <new> .在此之后,调用placement::new 可以在非默认构造函数中正常工作。

最佳答案

要使用新展示位置,您需要包含标题 <new> :

#include <new>

否则operator new 的放置形式没有定义。

关于c++ - 放置新的和非默认的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3910375/

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