Я реализую дерево в одном из своих проектов. Каждый узел содержит вектор с нулем или более дочерними узлами. Каждый узел также содержит ссылку на своего родителя (родительской ссылкой корня является nullptr). Вот пример определения класса:
ref class TreeNode {
...
TreeNode^ _parentNode;
Platform::Collections::Vector<TreeNode^>^ _childNodes;
}
Во-первых, вызовет ли это утечку памяти? Я предполагаю, что это сильные ссылки в обоих направлениях, и поэтому количество ссылок на объекты останется выше нуля.
Я видел примеры Platform::WeakReference, но никогда в качестве переменных экземпляра. Это возможно? Как будет выглядеть синтаксис?