我应该知道在一个.h文件中有两个单独的类?
我有一个二元搜索树类,包含所有成员和公共&私人职能。
class BinarySearchTree
{
struct Node {
Node* left;
Node* right;
int val;
};
};
并且遵循该代码我想设计一堆指向该二进制搜索树节点的指针。在我的同一个文件中
class stack
{
Node* array;
//
};
Visual Studio不显示链接,也不识别Node*
。可以在一个.h文件中声明两个单独的类,还是更好地实现嵌套在二叉搜索树类中的堆栈类?
答案 0 :(得分:1)
您已声明struct
名为Node
的{{1}}嵌套在课程BinarySearchTree
中,因此如果您想在班级之外引用struct
,那么需要像这样引用它:
class stack
{
BinarySearchTree::Node* array;
//
};
这个好的设计是否是一个全新的问题,所以我建议在进行更多询问之前先进一步了解。
编辑
就像你注意到的那样,如果你想在类之外使用它,就必须创建嵌套结构public
。这本身并不一定是坏事或错误。你没有公开数据,只是一个声明。
你有两个选择:
就个人而言,我会选择第一个选项。