Что означает возвращаемый тип "BST &"? - PullRequest
2 голосов
/ 22 марта 2020

Я попытался реализовать простой BST с членом класса, который вставляет значение в дерево. Я следовал за кодом, как показано ниже:

class BST {
public:
    int value;
    BST* left;
    BST* right;

    BST(int val);
    BST& insert(int val);
};

Но я не понимаю, что означает тип возврата BST & . Что это значит?

1 Ответ

2 голосов
/ 22 марта 2020

Это ссылка на экземпляр BST. Это означает, что вы можете изменить BST с помощью этой ссылки, например:

BST tree(1);
BST &newNode = tree.insert(3);
newNode.value = 4;

Приведенный выше фрагмент кода создаст дерево со значением 1, затем вставит узел со значением 3, но заменит это значение на 4 в третья строка.

Для получения дополнительной информации о ссылках на C ++ рассмотрите чтение:

В чем различия между переменной-указателем и ссылочной переменной в C ++?

...