我无法理解在以下上下文中如何使用new()运算符。谁能解释我怎么样?

时间:2018-03-01 12:13:24

标签: c++ c++11

我提到的代码在链接中 - > http://upcoder.com/3/roll-your-own-vector 在这个例子中,在copyrange方法中,他们使用new运算符,如下面的代码所示。

  static void
copyRange(T* begin, T* end, T* dest)
{
    while(begin != end)
    {
        new((void*)dest) T(*begin);
        ++begin;
        ++dest;
    }
}

任何人都可以解释new()在这种情况下的工作原理吗?

我可以写new (dest) T(*begin);而不是new((void*)dest) T(*begin);,因为dest已经是指向T的指针。我为什么要把它转回void*

0 个答案:

没有答案