如何为包含结构的类声明成员函数?

时间:2018-03-29 23:51:39

标签: c++

我一直在尝试编译这段代码,但我似乎无法正确地获取它的语法。我想使这个函数成为bst类的成员函数。 Node结构和FindMin在类之外可以很好地相互协作,但我不能使声明工作。

//class bst
//{
    public:
    struct Node
    {
        int data;
        struct Node *left;
        struct Node *right;
    };

    //struct FindMin(Node*);

//};

//Function to find minimum in a tree.
Node* FindMin(Node* root)
{
    while(root->left != NULL) root = root->left;
    return root;
}

1 个答案:

答案 0 :(得分:4)

您可以像其他任何一样声明成员函数。 Node在类的范围内声明,因此您可以直接引用它。

如果将定义放在类主体之外,则必须指定返回值的完整范围。

class bst
{
    public:
    struct Node
    {
        int data;
        struct Node *left;
        struct Node *right;
    };

    Node* FindMin(Node*);

};

bst::Node* bst::FindMin(Node* root) {
    // ...  
}