Angenommen, ich habe eine Vorlagenklasse, die ich als Freundklasse deklarieren möchte. Soll ich die Klasse deklarieren oder ihr eine eigene Vorlage geben? Beide scheinen hier zu arbeiten, aber ich bin daran interessiert, wie ich das richtig mache.Vorlage Freund Klasse: Forward Declaration oder ...?
Beispiel:
template <typename E>
class SLinkedList;
template <typename E>
class SNode {
private:
E elem;
SNode<E>* next;
friend class SLinkedList<E>;
};
Oder
template <typename E>
class SNode {
private:
E elem;
SNode<E>* next;
template <typename T>
friend class SLinkedList;
};
-
Für das, was ihren Wert, dieser Code von geändert wird, was aus einer Datenstrukturen und Algorithmen Lehrbuch direkt ist. Jedoch verwendet das Buch den folgenden Code, der den Fehler in Xcode „Explicit Spezialisierung von Nicht-Template-Klasse
template <typename E>
class SNode {
private:
E elem;
SNode<E>* next;
friend class SLinkedList<E>;
};
daher diese Frage‚SLinkedList‘gibt. Neu in C++.
Interessanter Vorschlag. Prost – badfilms