LordTerra Geschrieben 2. September 2008 Geschrieben 2. September 2008 moin ich hab ne frage bezüglich eines fehlers den ich beim complieren bekomm... ich habe eine datei: abc.cpp und ein headerfile: abc.h in dem headerfile hab ich eine klasse deklariert: BVOBJ diese enthält eine Funktion: Blobanalyse(10 parameter) nun hab ich da noch einen weiteren parameter hinzugefügt.. Blobanalyse(10 parameter, int a); diese wird nun in der abc.cpp beschrieben: int BVOBJ::Blobanalyse(10 parameter, int a){ -- code -- return int; } der aufruf sieht entsprechend int anz=Blobanalyse(10 parameter, int a); das problem: wenn ich das nun compiliere bekomm ich die fehlermeldung: Fehler: Standartargument für Parameter 11 wieso ist das so bzw was hab ich vergessen? thx für hilfe LordTerra Zitieren
TDM Geschrieben 2. September 2008 Geschrieben 2. September 2008 int anz=Blobanalyse(10 parameter, int a); a hat keinen Wert?! Zitieren
LordTerra Geschrieben 2. September 2008 Autor Geschrieben 2. September 2008 (bearbeitet) ja naja... das is denke ich richtig ... aber wo muss ich denn nun auch noch a nen wert zuweisen ? ich hab schon ewig kein c++ mehr programmiert und naja das is nen etwas größeres programm... Bearbeitet 2. September 2008 von LordTerra Zitieren
TDM Geschrieben 2. September 2008 Geschrieben 2. September 2008 int a = 5 int anz=Blobanalyse(10 parameter, a); // oder gleich int anz=Blobanalyse(10 parameter, 5); 10 Parameter denk ich aber mal steht nicht so deklariert. O.o und das return int aus der Funktionsdeklaration wird sicher auch anders sein, oder? Zitieren
LordTerra Geschrieben 2. September 2008 Autor Geschrieben 2. September 2008 ja das return einfach ignorieren hatte nur damit zeigen wollen das da auch was zurück gegeben wird ... hmmm dieses int a=0; soll wo hin ? in den headerfile? oder in den cpp ? hmmm ok ich muss glaube doch etwas weiter ausholen ... also: in dem headerfile gibt es 2 klassen (gibt mehr aber wichtig sind nur 2) OBJ: da ist die blobanalyse drin und OCR: da steht drin Compute1(); Serializieren(); und die variable private int zeichenabstand; in der cpp: OCR::Serializieren(){ hier wird aus einer datei die variable zeichenabstand ausgelesen und zugewiesen } OCR::Compute1(){ in der Funktion wird nun die Blobanalyse aufgerufen (siehe oben) } int OBJ::Blobanalyse(10 parapeter, int zeichenabstand){ erg wird zurück gegeben } also rein theorethisch sollte diese variable durch die funktion Serializieren() belegt sein ... ich weis nun nicht ob das noch irgendwas fehlt ... thx für hilfe LordTerra Zitieren
TDM Geschrieben 2. September 2008 Geschrieben 2. September 2008 also rein theorethisch sollte diese variable durch die funktion Serializieren() belegt sein ... ich weis nun nicht ob das noch irgendwas fehlt ... D.h. a gibt es schon irgendwo als Member in einer Klasseninstanz? Nun, dann darfst du a nicht in der Funktion neu deklarieren (sonst wird der Member überblendet), sondern genau den Member eben nehmen. [Edit:] Ich seh grad das Serializieren() ja in einer anderen Klasse ist, also doch nichts mit Klasseninstanz. Wie soll also die Variable dann belegt worden sein? Zitieren
LordTerra Geschrieben 2. September 2008 Autor Geschrieben 2. September 2008 wat ? sorry lang kein c++ mehr programmiert ... also wie gesagt a = zeichabstand (wollt das nur eben etwas einfacher darstellen) also in der klasse OCR ist zeichenabstand deklariert ... aber in der Klasse OBJ halt nicht ... da die Blobanalyse ja nun eine funktion von OBJ ist dachte ich schon das ich diese variable in der funktion Blobanalyse neu deklarieren muss.. also ich übergeb die in OCR deklarierte und zugewiesene variable an die funktion blobanalyse der klasse OBJ... Zitieren
TDM Geschrieben 2. September 2008 Geschrieben 2. September 2008 also ich übergeb die in OCR deklarierte und zugewiesene variable an die funktion blobanalyse der klasse OBJ... Genau. Zitieren
Klotzkopp Geschrieben 3. September 2008 Geschrieben 3. September 2008 Hat einer der "10 Parameter" ein Standardargument (Defaultwert)? Falls ja, muss der neue auch eins bekommen. Sobald du einem Parameter ein Standardargument verpasst, müssen alle nachfolgenden auch eins bekommen. Zitieren
LordTerra Geschrieben 3. September 2008 Autor Geschrieben 3. September 2008 ok das könnte es sein da der 10. parameter ein boolean wert is mit nem zugewiesenen false ... ok test ich gleich ma Zitieren
LordTerra Geschrieben 3. September 2008 Autor Geschrieben 3. September 2008 ja das wars ... naja thx Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.