C ++:在合并对象时管理指针

时间:2016-01-22 14:31:46

标签: c++ pointers memory

我有许多代表多边形的对象。 我有一组指针,每个指针都有自己的多边形。

迭代每对指针我合并多边形,如果它们重叠成一个新的多边形。我现在让两个指针指向合并的多边形,以便能够再次合并它并在两个指针中进行更改。

现在我的问题很快出现了三个对象:

  1. A *指向A,B *至B和C *至C,如您所料。
  2. 我合并A *和B *,现在两者都指向AB
  3. 然后我合并A *和C *,现在两者都指向ABC。
  4. 我的问题是现在B *不知道AB再次合并仍然指向AB,这不是我想要的。

    我想要的是行为而非指针,所以我可以自由提出任何建议。 唯一的限制是遗憾的是我不允许使用C ++ 11或更新版本。

2 个答案:

答案 0 :(得分:0)

当Mergin A和C合并时,合并属于同一多边形A(和C)的所有多边形。

这意味着,当合并A * - > AB时,您还应合并B * - > AB。

答案 1 :(得分:0)

我只是通过“向前合并”来宣传这一点。

A *指向A和B *指向B.好,这不会改变。合并A和B时,使两者都指向AB 。 :

A* -> A -> AB <- B <- B*

现在使用C * / C:

A* -> A -> AB <- B <- B*
            |
            V
C* -> C -> ABC