(*object)[0]和(*object)[1]之间有什么区别?

Chr*_*isS 1 c++ pointers

我找到了一个代码片段,并且不明白(*对象)后索引[1]和[0]的作用

对象:

Edge *edgea = new Edge(vertex_a,triangle);
Edge *edgeb = new Edge(vertex_b,triangle);
Run Code Online (Sandbox Code Playgroud)

电话:

Edge *edgea_opposite = getEdge((*edgea)[1],(*edgea)[0]);
Run Code Online (Sandbox Code Playgroud)

BoB*_*ish 8

这里没有数组.但是operator[]可以为一个班级重载.例如,std::vector它可以像数组一样使用.

所以Edge必须重载这个.我们不能告诉你它的作用,因为我们没有这个定义,我们不知道它是来自某个公开的图书馆,还是私人的公司/项目/其他.

但是从上下文猜测,我认为someEdge[0]得到线段的开始,并someEdge[1]得到它的结束.创建一个新的Edge交换周围创建"对立"边缘.由此得名.