c++ - 对象创建的特殊方式?

标签 c++ oop templates malloc new-operator

下面是一个实现创建对象的类的例子:

template <class T>
struct MallocCreator {
    static T* Create() {
        void* buf = std::malloc(sizeof(T));
        if (!buf) return 0;
        return new(buf) T;
    }
};

通过使用 mallocnew 运算符。

new 的作用是什么?上面的语法到底是什么?

最佳答案

"placement new" .您的代码所做的是使用 malloc 创建一个 T 大小的原始内存,然后在该原始内存中构造一个新的 T

关于c++ - 对象创建的特殊方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35233367/

相关文章:

来自模板参数的 C++ 通用模板方法名称

c++ - 将参数从主线程传递到线程。当线程退出时,主线程重置为0。为什么?

python - 哎呀类(class)圈子

php - OOP PHP First Class Mysql数据库连接

javascript - Javascript 中的原型(prototype)继承 使用基本但不复杂的程序

php - 如何在 PHP 中获取 View 中可用的所有变量?

c++ - 可以通过使用输入寄存器来寻址输出 SIMD 寄存器

c++ - 删除 ptr C++ 后会发生什么

c++ - C++中的流操纵器如何成为函数?

C++ 可变参数模板迭代 vector 并比较元素