静态方法可以访问C ++中的成员变量吗

时间:2019-03-02 01:10:18

标签: c++ static static-methods

我在一个学校项目上遇到麻烦。我正在研究实现二进制搜索树的代码。讲师提供了API。

在其中,他指定了一个名为Node的结构,该结构具有数据项,指向左右节点的指针以及该节点的构造函数。

struct Node
{
    const KeyType   key_;
    DataType  data_;
    Node * lchild_, * rchild_;

    Node (const KeyType& k, const DataType& d, uint8_t flags)
        : key_(k), data_(d), lchild_(nullptr), rchild_(nullptr), flags_(flags)
        {}
}

他还提供了一个静态函数,声明为:

static size_t RSize       (Node * n);

当我尝试将这些功能定义为分配要求时,我将其定义如下:

static size_t RSize(Node * n)
{
    if(n == 0) return 0;
    return (size_t)(n->IsAlive*()) + RSize(n->lchild_) + RSize(n->rchild_);
}

尝试编译时出现以下错误:

./oaa_bst.h:716:16: error: Node’ was not declared in this scope
   size_t RSize(Node * n)
                ^
./oaa_bst.h:716:23: error: n’ was not declared in this scope
   size_t RSize(Node * n)

0 个答案:

没有答案