[Reihenfolge der Variablennamen]Compilerfehler?
-
Guten Abend, ich habe ein Problem mit meinem minGW-Compiler aus meiner Code::Blocks IDE.
Ich probiere mich gerade an Templates und kriege folgenden reproduzierbaren Fehler:template<typename T> class CFIFO { public: CFIFO() { FirstNode = 0; LastNode = 0; //no match for 'operator=' in '((CFIFO<int>*)this)->CFIFO<int>::LastNode = 0'| } void push(T newValue); private: TFifoNode<T>* FirstNode, LastNode; int iNumberOfElements; };Wenn ich jetzt die beiden Variablennamen vertausche, kriege ich bei FirstNode einen Fehler:
TFifoNode<T>* LastNode, FirstNode;Abhilfe schafft das Deklarieren der Variablen in unterschiedlichen Zeilen:
TFifoNode<T>* LastNode; TFifoNode<T>* FirstNode;Kann mir das jemand erklären?
-
int* a,b;a ist ein Zeiger auf int, b ist ein int. Daher schreibt man auch oft
int *a,b;, damit dies deutlicher wird. Die meisten Leute deklarieren wohl allgemein alle Variablen jeweils in einer Zeile (zumindest wenn irgendwo Zeiger auftauchen), dann passieren gar nicht erst solche Missverständnisse.
-
er brauch auch einen Zeiger
TFifoNode<T>* LastNode, *FirstNode;Das hier würde auch nicht funktionieren
int main() { int* p, z; p = new int[1]; z = new int[1]; // error C2440: '=': 'int *' kann nicht in 'int' konvertiert werde }
-
Danke! Ich dachte das Sternchen gehört noch zum Datentyp dazu.