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

时间:2014-05-17 20:17:24

标签: c++ pointers

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

对象:

Edge *edgea = new Edge(vertex_a,triangle);
Edge *edgeb = new Edge(vertex_b,triangle);
电话:

Edge *edgea_opposite = getEdge((*edgea)[1],(*edgea)[0]);

1 个答案:

答案 0 :(得分:8)

这里没有数组。但是operator[]可以为一个类重载。 For instance, std::vector does so that it can be used like an array.

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

但是从上下文中猜测,我认为someEdge[0]得到了线段的开头,而someEdge[1]得到了它的结束。使用这些交换创建新的Edge会创建“相反”边缘。因此这个名字。