Я в настоящее время в процессе кодирования моего дерева B +, и это структура моего кода для справки, так что мой основной вопрос имеет смысл :Реализация дерева B/B + по отношению к созданию класса другом дилеммы другого класса
Class BPlusTree{
// some functions, members.. etc
};
Class Node{
// some functions, members.. etc
}
Теперь, вот мой вопрос/дилеммой, так как мой узел является классом самостоятельно, если я хочу, чтобы вставить ключ/значение пары в узел, я должен был бы назвать BPlusTree вставить функцию который, в свою очередь, вызывает собственную функцию вставки узла (я не могу напрямую обращаться к отдельным членам Node). Мне это кажется немного странным.
Однако, если бы я просто сделать это в моем узле Класс:
friend class BPlusTree;
я смог бы получить доступ к закрытым членам узла и, таким образом, мне не нужно, чтобы сделать функцию вставки внутри класса Node, потому что теперь моя функция вставки в BPlusTree имеет доступ к элементам.
Этот подход хороший или плохой? Я нахожусь в том смысле, что рефакторинг моего кода не будет больно, поэтому я подумал, что попрошу об этом сейчас, пока не стало слишком поздно.
Возможно, вас заинтересует следующее сообщение: [Как я могу удалить/реорганизовать объявление зависимости «друга» правильно?] (Http://stackoverflow.com/questions/27492132/how-can-i-remove-refactor- а-друг-зависимость декларирование-правильно) –