Tag: typename
typename ist ein Schlüsselwort in der Programmiersprache C++ mit zwei Bedeutungen. Erstens kann es verwendet werden, um zu deklarieren, geben Sie Argumente innerhalb einer template-Deklaration, und das ist gleichbedeutend mit „Klasse.“ Zweitens kann es verwendet werden, um anzuzeigen, dass ein abhängiger name bezieht sich auf einen Typ. Eine häufige Ursache von Fehlern in C++ – code ist der Wegfall einer wesentlichen typename.
1
Antworten
Habe ich die folgende Klasse: #include "SingleNode.h" template <typename T> class LinkedList<T> { private: SingleNode<T>* head; SingleNode<T>* tail; SingleNode<T>* current; int currentSize; public: LinkedList(); ~LinkedList(); }; Soweit ich sagen kann, es ist nichts falsch mit ihm. Aber
2
Antworten
Ich habe ein problem mit dem folgenden code: template <typename U> class lamePtr { public: typedef U* ptr; }; template <typename U> class smarterPointer { public: void funFun() { typedef lamePtr<U> someType; someType::ptr query; } }; Wie
3
Antworten
Ich muss in der Lage sein, um übergeben Sie einen Typnamen als parameter: int X = FileRead(file, 9, char); Das Konzept ist für FileRead(std::fstream sind, int pos, ???) Lesen pos*sizeof(wie auch immer der Typ ist) auf die
6
Antworten
In Vorlagen, wo und warum tun, ich habe zu typename und template auf abhängige Namen? Was genau angewiesen sind Namen sowieso? Ich habe den folgenden code: template <typename T, typename Tail> //Tail will be a UnionNode too.
1
Antworten
Ich habe eine seltsame Problem, und ich bin mir nicht ganz sicher, was das Problem ist. Ich erstelle eine Klasse namens LinkedArrayList verwendet typename template (siehe code unten: #pragma once template <typename ItemType> class LinkedArrayList { private:
1
Antworten
Ich versuche, verwenden Sie die C++ standard-Bibliothek find Algorithmus so: template<class T> const unsigned int AdjacencyList<T>::_index_for_node( const std::vector<T>& list, const T& node ) throw(NoSuchNodeException) { std::vector<T>::iterator iter = std::find(list.begin(), list.end(), node); } Wenn ich versuche zu kompilieren,
3
Antworten
Betrachten Sie diesen code, template<class T> struct Sample { typename T::X *x; //declare pointer to T's X }; In dem obigen code, das Schlüsselwort typename erforderlich ist, durch den compiler, so dass es keine Verwechslungen zwischen den
7
Antworten
Schreibe ich einige template-Klassen für parseing einige text-Dateien, und als solche ist es Hilfspersonal die große Mehrheit der parse-Fehler werden durch Fehler in der Daten-Datei, die für die meisten Teil nicht geschrieben von Programmierer, und so eine
4
Antworten
Betrachten Sie die folgende header-Datei: template <typename T> struct tNode { T Data; //the data contained within this node list<tNode<T>*> SubNodes; //a list of tNodes pointers under this tNode tNode(const T& theData) //PRE: theData is initialized //POST:
5
Antworten
Hatte es schon eine Weile her, GCC, erwischte mich mit dieser ein, aber es ist einfach passiert heute. Aber ich habe nie verstanden, warum GCC erfordert typedef typename innerhalb von Vorlagen, während VS und ich denke ICC
4
Antworten
Ich bin der Begegnung große Schwierigkeiten in der Deklaration einer Vorlagen-Typ wie unten dargestellt. #include <cstdlib> #include <iostream> using namespace std; template <class T> class Foo { typedef T Bar; }; template <class T> typedef typename Foo<T>::Bar
2
Antworten
Wie mache ich die folgende Funktion in einer Klasse und dann Zugriff auf diese Funktion vom Hauptmenü? Meine Klasse ist einfach eine Sammlung von einer Reihe statischer Funktionen. template<typename T> double foo(vector<T> arr); InformationsquelleAutor der Frage CodeKingPlusPlus
5
Antworten
In Vorlagen, wo und warum tun, ich habe zu typename und template auf abhängige Namen? Was genau angewiesen sind Namen sowieso? Ich habe den folgenden code: template <typename T, typename Tail> //Tail will be a UnionNode too.
1
Antworten
Folgende template-Spezialisierung-code: template<typename T1, typename T2> void spec1() { } Test Fall 1: template< typename T1> //compile error void spec1<int>() { } Test-Fall 2: template< typename T2> //compile error void spec1<int>() { } generiert die folgenden Kompilierungsfehler: