Problem mit Pointerübergabe
-
Hallo allerseits, ich bin ein "Neuer" mit einem vermutlich dämlichen Problem, leider komme ich nicht so Recht auf die Lösung/den Grund.
Folgendes:Aufruf im Hauptprogramm:
Obj * DS=new Obj(); ReadOFFFileTri(DS);
Zugehörige Funktion:
void ReadOFFFileTri(Obj * ModelData) { int Polys,Vertices,Edges; ifstream Fin; Fin.open("cow.off"); Fin.ignore(4); Fin >> Vertices >> Polys >> Edges; cout << "Anzahl Vertices: " << Vertices << endl; cout << "Anzahl Dreiecke: " << Polys << endl; ....
Bei obigem Aufruf von ReadOFFFileTri sagt der Compiler:
Compiling...
Exp.cpp
j:\cg\ownproj\exp\exp.cpp(335) : error C2664: 'ReadOFFFileTri' : cannot convert parameter 1 from 'const class Obj *' to 'class Obj &'
A reference that is not to 'const' cannot be bound to a non-lvalueEigentlich bin ich ja der Meinung daß ich einen Pointer übergebe und meine Funktion dann auf den Daten an der übergebenen Adresse operiert. Leider gibts nur die Fehlermeldung. Wieso?
Danke schonmal im Voraus.
-
Also so wie da der Fehler steht, ist die Funktion so deklariert, dass sie eine Referenz und keinen Zeiger als Argument bekommen muss. Das würde aber heissen, dass die Funktionsdefinition nicht stimmt, so wie sie da steht. Komisch.
Mfg PhoemueX