017
22.07.2003, 21:26 Uhr
Pablo
Supertux (Operator)
|
Die Prototypen, wie ich schon sagte, teilen nicht nur dem Compiler mit (das erwähnt auch @ao), dass es eine solche Funktion gibt. Mach folgendes:
C++: |
#include <iostream.h> int main() { cout << "2*2 = " << mult(2,2) << endl; }
int mult(int x, int y) { return x*y; }
|
Wenn du versuchst das zu kompilieren, erhälst du folgende Meldung:
m.cpp: In function `int main()': m.cpp:4: implicit declaration of function `int mult(...)'
Vergleiche diesen Code mit dem letzten:
C++: |
#include <iostream.h> int mult(int,int); // hier ist der Unterschied // funktioniert auch mit int mult(int x, int y); int main() { cout << "2*2 = " << mult(2,2) << endl; }
int mult(int x, int y) { return x*y; }
|
Dieser Code lässt sich kompilieren und 2*2 = 4 ist die Ausgabe.
Nur bei den Prototypen muss man Semikolon schreiben, weil Prototypen niur sagen, wie eine Funktion mit Namen und Nachnamen heißt. Der Rumpf der Funktion ist nicht dabei. Wo der Rumpf der Funktion ist, ist doch egal, deshalb findest du meistens in den Header Dateien nur Prototypen (oder besser gesagt die Definitionen der Funktionen) jedoch befindet sich der Code für diese Funktionen in einer anderen cpp Datei, die per #include die h Datei einbindet.
C/C++ ist nicht wie Java, wo du deine Funktionen bzw. Variablen in eine beliebige Stelle deklarieren kannst. In dieser Hinsicht sind C und C++ ähnlich wie Pascal, der Rumpf der Funktion, die aufgerufen werden muss, muss vor dem Rumpf derFunktion stehen, die die andere aufruft, Das kann man mit den Prototypen vermieden, indem man die Prototypen immer ganz am Anfang deklariert oder in einer anderen Datei hat. -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth! Dieser Post wurde am 22.07.2003 um 21:29 Uhr von Pablo Yanez Trujillo editiert. |