Ich habe eine Vorlage, in dem ich eine Erklärung eines Freundes Funktion haben, und niedriger, außerhalb der Klasse, ich habe es Realisierung ist:Der Versuch, einen Freund Funktion der Template-Klasse zu nennen
template<class TreeElement, class Comparator, class Operation>
class AVLTree {
public:
template<class A, class B, class C >
friend AVLTree<A, B, C> createEmptyAVLTree(int n);
...
}
template<class A, class B, class C>
AVLTree<A, B, C> createEmptyAVLTree(int n) { ... }
Was die Signatur um es irgendwo in anderen Dateien zu nennen?
Ich habe versucht:
AVLTree<Post, postByLikesFunc, emptyFunc>::createEmptyTree();
aber es sagt, es ist es nicht auflösen konnte. Warum ? Freund-Mitglied sollte einfach so gesehen werden, nicht wahr?
EDIT:
AVLTree<Post, postByLikesFunc, emptyFunc> empty;
empty = createEmptyTreeAVLTree<Post, postByLikesFunc, emptyFunc>(size);
empty.arrayToTree(sorted_posts);
, die in ihm in Troll.cpp ist seine Funktion.
schreit Still „wurde nicht in diesem Bereich erklärt“, „Funktion nicht aufgelöst könnte“, „Symbol couldnt nicht gelöst“, „erwartet vor primär Ausdruck“, „erwartet Primärausdruck vor>“
löste es. genau wie Slardar gesagt hat. – KittyT2016