公共和私人问题

时间:2014-06-30 17:09:47

标签: c++ class private public

我刚刚开始编程,所以如果我现在说一些愚蠢的话,不要太苛刻...... 我在C ++中尝试制作的是一个代表图形的类。每个图都有其节点列表,这是它自己的类。问题是我想让类“node”的某些成员成为私有的,因此它们不能从例如main函数访问,但是,我想让它们在graph类中可访问。类节点本身应该可以在类图之外访问。这可能吗?

1 个答案:

答案 0 :(得分:1)

假设您的节点有一个类Node,图表有一个类Graph。 您可以像下面的示例一样制作Graphfriend的{​​{1}}类Node

#include <iostream>

class Node {
  friend class Graph;
  //...
  std::size_t id;
  public:
  Node(std::size_t const _id) : id(_id) {}
  //...
};

class Graph {
 //...
 public:
 Graph(Node const &node) { std::cout << "Look! I can access input node its id is " << node.id << std::endl; }
 //...
};

int main() {
  Node n(1);
  Graph G(n);
}

LIVE DEMO