Klammer und Array Problem

also, ich habe eben mit VC++ 6.0 mal schnell folgendes compiliert:

Code:
int CMyClass::cout( char var1, char var2, char array1[2000] )
{
    int i = 5;
    return i;
}

und im Header steht dabei
Code:
public : 
   int cout( char var1, char var2, char array1[2000] );

Kein Problem damit (und anders sollte es in C/C++ auch nicht gehen) :eek:
Mit was für einer Entwicklungsumgebung arbeitest du denn ?

Im übrigen klingt für mich Deine Fehlermeldung so, als wenn es doch eher ein Aufruf ist - und dieser nicht mit dem Trototype, also der Deklaration im Header, überein stimmt !!

Poste mal mehr Details - ggf. auch vom Code!!

tschüss
Klaus
 
Zuletzt bearbeitet:
Ich musste die Funktion neu schreiben weil dass Programm teil eines eigenen OS ist :P.
also wenn ich die Dateitypen mit bei der Deklaration angebe, bekomme ich die Fehler meldung "argument 'var1' doesn't match prototype'". und das mit den Klammern in der Definition wird immer noch bemängelt :-(
Du hast anscheinend irgendwo anders noch einen Fehler gemacht. Von deiner unzureichenden Beschreibung kann man aber auch nichts weiter sagen.

Lass uns doch hier nicht rumraten und zeig vernünftigen Code. Soll es C oder C++ sein? Mach ein kompilierbares Beispiel und erkläre was du erwartest und poste die vollständige
Compilerausgabe!

Gruß
 
wie oben schon geasagt verwende ich gcc, und die komplette fehler ausgabe habe ich ja schon jeweils gepostet.
 
also erstens: wie ich schon schrieb, läßt es sich so compileren, wie vorhin beschrieben!
zweitens: der gcc ist nur ein Compiler, mehr nicht!

drittens:
die Fehler meldung "argument 'var1' doesn't match prototype"
das ist ja wohl nicht alles, was ausgeben wird, gell ?

Wenn Du nicht ausführlicher werden willst, können wir vermutlich kaum helfen .....

Gruß
Klaus
 
Zuletzt bearbeitet:
Keine Zeit, alles durchzulesen, aber:
C++:
char var1, var2;
char array1[]
int cout(var1, var2, array1[])

int cout(var1, var2, array1[])
{ 
    // ...
}
Hm, also. Du legst damit 2 Variablen vom typ char und einen char-Array im aktuellen Scope an (ich gehe mal von global aus!). Dann fehlt deinen Parametern der Typ, MSVC++ würde wahrscheinlich int annehmen, kannst du aber nicht von ausgehen, das was du haben willst ist aber eher:
C++:
int count(char var1, char var2, char array1[]);
... so ist das auch korrekt ;) Da muss keine Größe rein. char [] wird behandelt wie char*.

C++:
#include <iostream>
int cout(char var1, char var2, char* array1);

int main()
{
    std::clog << cout('a', 'b', "sample") << std::endl;
}

int cout(char var1, char var2, char* array1)
{
    return 1;
}
z.B. sollte ohne Probleme Funktionieren und dir 1 ausgeben.
 
So,
ich danke ja allen für die hilfe und den fehler mit der typbezeichnung, den GCC übrigens nicht gemeldet, seh ich ja ein, aber die fehler meldung ist immer noch da, und ich gebs jetz auf. Mit VC++ gehts, kann dort aber nunmal keine .obj dateien erstellen. Also nochmal Danke.
Skini
 
Zurück