这包含在一个 for 循环中:
v[i] = new (&vv[i]) vertex(pts[i],i);
vertex
是一个struct
pts
是一个point*
v
是一个vertex**
vv
是一个vertex*
(&vv[i])
部分是做什么的?
最佳答案
看起来像是新的展示位置。它与普通的 new
语句相同,但它不是实际分配内存,而是使用括号内的表达式指向的已经可用的内存。
在你的例子中,它使用 vv[i]
中的内存来创建新的 vertex
对象,然后返回指向该对象的指针(即 &vv[i ]
) 并将其分配给 v[i]
。
参见例如this reference了解更多详情。
关于c++ - 我不认为这是类型转换,但它是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18531593/