0

关于在一个 .h 文件中有两个单独的类,我应该知道什么?

我有一个包含所有成员以及公共和私有函数的二叉搜索树类。

class BinarySearchTree
{
   struct Node {
      Node* left;
      Node* right;
      int val;
   };
};

并遵循该代码,我想设计一个指向该二叉搜索树节点的指针堆栈。在同一个.h 文件中我有

class stack
{
  Node* array;
  //

};

Visual Studio 不显示链接,也不识别Node*. 可以在一个 .h 文件中声明两个单独的类,还是实现嵌套在二叉搜索树类中的堆栈类更好?

4

1 回答 1

1

你已经声明了一个嵌套在 class 中的struct被调用,所以如果你想在 class 之外引用它,你需要像这样引用它:NodeBinarySearchTreestruct

class stack
{
  BinarySearchTree::Node* array;
  //

};

这是否是一个好的设计是一个全新的问题,所以我建议在询问更多之前进一步了解实现。

编辑

正如您所注意到的,public如果您想在类之外使用嵌套结构,则必须创建嵌套结构。这本身并不一定是坏的或错误的。你没有暴露数据,只是一个声明。

你有两个选择:

  1. 将嵌套结构公开。
  2. 将嵌套结构置于封闭类之外。

就个人而言,我会选择第一个选项。

于 2013-04-27T10:00:54.627 回答