使类对象只属于另一个类对象

时间:2015-06-28 17:17:52

标签: c++ class object

我只是想知道是否可以做这样的事情:

#include "graph.h"
Graph A, B;
Node n;

A.insertNode(n);
A.nodeExists(n); // returns true
B.nodeExists(n); // returns false

从现在开始,我只在boolean类中存储了Node var,它告诉我Node对象是否已插入Graph内。但就这样,会发生什么:

A.nodeExists(n); // returns true
B.nodeExists(n); // returns true

这是不正确的。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

要么存储指向节点所属的Graph对象的指针(从而用Graph *替换你的bool)。然后,将检查的简单快速分配给特定的Graph对象。 Graph :: nodeExists函数内部就像asK:

if (n.pOwnerGraph == this)
    return true;

作为替代方案,您可以扫描整个图形并查找给定节点。这要慢得多,但它并不需要节点中的Graph指针。