Как написать шаблон? - PullRequest
       5

Как написать шаблон?

0 голосов
/ 19 сентября 2010

Мне нужно написать шаблон с Узлами, содержащими данные с 2 структурами данных: картой и минимальной кучей, в которых есть одинаковые узлы, и каждые 2 одинаковых узла соединены.проблема в том, что мне нужна куча, чтобы знать поля узла, например, для heapify, и я не знаю, как это правильно сделать, друзья?публичные поля в Node?писать узел в куче?используя геттеры и сеттеры?спасибо всем за помощь.

1 Ответ

1 голос
/ 19 сентября 2010

Ну, связанный список может быть выложен так:

namespace my_namespace
{
namespace detail 
{
template <class T>
struct Node
{
    T value;
    Node* previous;
    Node* next;
    //constructors and other things that might help
};
}

template <class T>
class LinkedList
{
private:
    detail::Node<T>* head;
public:
    //all it does    
};
}

Нет особой причины скрывать структуру Node от пользователя или класса LinkedList (помещать ее в подробное пространство имен должно быть более чем достаточно): LinkedList нуждается в этом, а сам Node в значительной степени бесполезен для пользователя. Вся инкапсуляция зависит от LinkedList для достижения: она просто не должна выдавать свою голову (или любую другую Node*).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...