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

How do I declare a member function for a class that contains a struct?

本文关键字:结构 成员 函数 包含 何声明 声明      更新时间:2023-10-16

我一直在尝试使此代码编译,但是我似乎无法正确地获得语法。我想让此功能成为BST类的成员函数。节点结构和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;
}

您可以像其他任何人一样声明成员函数。Node在类的范围中声明,因此您可以直接参考。

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

class bst
{
    public:
    struct Node
    {
        int data;
        struct Node *left;
        struct Node *right;
    };
    Node* FindMin(Node*);
};
bst::Node* bst::FindMin(Node* root) {
    // ...  
}