c++ - 如果我使用的是私有(private)结构,我如何将其声明为上面列出的公共(public)成员函数的参数?

标签 c++ struct

VS 对“makeEmptyHelper”的“Node*”参数不满意,因为它没有“看到”我猜想的结构。

public:
    void makeEmpty(); // make the tree empty so isEmpty returns true 
    void makeEmptyHelper(Node*);

private:
    struct Node {
        NodeData* data; // pointer to data object 
        Node* left; // left subtree pointer 
        Node* right; // right subtree pointer 
    };
    Node* root; // root of the tree 

最佳答案

你不能那样做。我看到您正在尝试完成两件可能的事情:

  • 可以公开访问 makeEmptyHelper 但隐藏 struct Node 的内容。在这种情况下,您应该将 struct Node 的字段声明为私有(private),或者将 struct Node 声明为公共(public)但仅在您的实现文件中定义其成员。

  • makeEmptyHelper 成为另一个成员函数的辅助函数。在这种情况下,将其设为私有(private)。

关于c++ - 如果我使用的是私有(private)结构,我如何将其声明为上面列出的公共(public)成员函数的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21250598/

相关文章:

c++ - C/C++ 结构,在缓冲区中包含位字段

c++ - 在 C++ 中对来自全局函数的结构成员使用方法

c++ - 将创建多少个 VTable?

c++ - 读取字符串的长度,然后反转/反转字符串

c++ - 具有整数溢出的递归斐波那契

c# - 与结构约束的协方差

c++ - 我怎样才能声明一个结构?

c - 这个结构代码是如何工作的

c++ - 大小 8 的无效读取

c++ - 错字为 "cout < myint"。为什么它有效?