【发布时间】:2021-12-29 14:37:14
【问题描述】:
我在 C++ 中有两个不同的类,Node 和 Graph。我想通过图中的方法访问 Node 的内容但不公开,我该怎么做?
【问题讨论】:
我在 C++ 中有两个不同的类,Node 和 Graph。我想通过图中的方法访问 Node 的内容但不公开,我该怎么做?
【问题讨论】:
您可以使用friend 声明来指定classes 或您希望授予private 和protected 成员完全访问权限的函数。
例子:
class Node {
// ...
private:
friend class Graph;
int x;
};
class Graph {
public:
void foo(Node& n) {
n.x = 1; // wouldn't work without `friend` above
}
};
int main() {
Graph g;
Node n;
g.foo(n);
}
【讨论】:
public并将节点隐藏在图形类中,这样除了图形类之外没有人可以用。
Node 和 Graph。