1

我创建了一个创建邻接表(图论)的基本类。我编写了一个深度优先搜索功能,但它的设计很糟糕,目前有 50 行长。我正在尝试减小函数的大小并提高函数的可读性。

template <class T>
class adj_list
{
  public:
   void add_node (const T data);
   void add_edge(const T first, const T second);
   void remove_node (const T data); 
   void remove_edge(const T first, const T second);
   void dfs(const T node, const T lookfor);
   void print_list() const;

  private:
   std::map<T, std::set<T>> graph;

};

所以我需要有 2-3 个“助手”(不确定如何称呼这些)函数,它们在 dfs 算法中执行特定操作。他们必须阅读私有图,但不能修改它。

将这些新的较小功能添加为公共成员是我的最佳选择吗?我不认为我希望用户使用这些功能。解决此问题的最佳方法是什么?

4

2 回答 2

4

将这些新的较小功能添加为公共成员是我的最佳选择吗?我不认为我希望用户使用这些功能。解决此问题的最佳方法是什么?

将它们添加为私人成员。

于 2013-09-06T10:36:15.963 回答
1

如果您正在谈论的那些方法将在类外调用,则需要将它们定义为public,并且由于您不会更改私有成员,您也可以将它们定义为public static

如果这些方法只能从该类的其他方法中调用,那么您应该将它们声明为private.

于 2013-09-06T10:38:50.030 回答