PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++: Ich habe eine Frage zu einem Prototyp



Sector1379
06-10-2006, 18:47
Hallo zusammen,

ich habe eine Frage zu einem funktions Prototyp den ich nicht ganz verstehe.
Also ich habe folgende Problem Stellung ich soll diese Funktion implementieren.

int mult(Vector *)

Wie ist das jetzt zu verstehen muss es nicht heißen:

int mult(Vector *var_name)

Weil der Pointer zeigt doch auf die Klasse aber was habe ich davon wie spreche ich die dann richtig an und setze diese um.

anda_skoa
06-10-2006, 19:15
Für die Deklaration reicht der Typ der Parameter, der Name ist nur dann wichtig, wenn du mit den Parameter arbeiten mußt, also normalerweise in der Implementierung der Funktion.

Selbst dort kann man bei Parametern, die man nicht benutzt, den Namen weglassen

Ciao,
_

Sector1379
06-10-2006, 19:19
Hallo anda_skoa,

mhh aber ich muss mit zwei variablenvom Typ Vector arbeiten weil ich eine multiplikation machen muss.

Kann ich die dann normal wieder ansprechen ????
Ich dachte immer die muss man übergeben.??

bischi
06-10-2006, 19:37
hmmm - hat das anda_skoa nicht gerade beschrieben? Also rein für die Definition in einem Headerfile musst du keinen Variabelnamen angeben - wenn du die Funktion implementierst, zwangsläufig schon...

MfG Bischi

Sector1379
06-10-2006, 19:43
Ach sooo ahh mist hab ich nicht richtig verstanden sorry.

Und vielen dank für die Hilfe.

peschmae
06-10-2006, 19:56
Also ich glaube bischi meinte Deklaration und nicht Definition. Zumindest in meinem Sprachgebrauch.

Wobei man sich dann über die Deklaration bzw. Definition von Deklaration und Definition streiten könnte. ;)

MfG Peschmä

bischi
06-10-2006, 21:01
Also ich glaube bischi meinte Deklaration und nicht Definition. Zumindest in meinem Sprachgebrauch.

Wobei man sich dann über die Deklaration bzw. Definition von Deklaration und Definition streiten könnte. ;)

Ach immer diese Feinheiten. Bei welcher vernünftigen Sprache muss man denn überhaupt Headerfiles schreiben... *tststssss*

MfG Bischi

Boron
07-10-2006, 01:11
Bei welcher vernünftigen Sprache Header Dateien verwendet werden?
Na bei jeder vernünftigen Sprache :)!

Ich habe bei Java immer Header Dateien vermisst um kurz und knapp zu sehen was denn eine Klasse so kann ohne gleich die Implementierung sehen zu müssen.
Nur wenn jemand ein Interface implementiert ist das OK. Da fehlt ja logischerweised jede Implementierung. Aber ohne Interface, also nur eine normale Klasse, ist das sehr hässlich in Java, finde ich.

bischi
07-10-2006, 16:55
Bei welcher vernünftigen Sprache Header Dateien verwendet werden?
Na bei jeder vernünftigen Sprache :)!

Ich habe bei Java immer Header Dateien vermisst um kurz und knapp zu sehen was denn eine Klasse so kann ohne gleich die Implementierung sehen zu müssen.
Nur wenn jemand ein Interface implementiert ist das OK. Da fehlt ja logischerweised jede Implementierung. Aber ohne Interface, also nur eine normale Klasse, ist das sehr hässlich in Java, finde ich.
Für das hast du eben Javadoc und erstellst damit einfach ein sehr übersichtliche Doku ;)

MfG Bischi

RHBaum
09-10-2006, 09:18
Wer bitte schreibt den Dokus ? :-) Naja, wenn ich ne Sekretaerin haaet ... :-)
Auf der anderen seite bei API's von unseren zulieferern bekomm ich auch seltener ne echte doku, sondern eher das kommentierte header file ^^

Find die Trennung zwischen Header und Impl doch sehr praktisch, auch wenn die Grenzen schon sehr verwischt sind .
Aber ohne dem wuerden viele "schmutzige" aber sehr performante dinge in c / c++ ja gar ned gehen ... ich sag nur inline und templates :-)

Kenn mich mit java ned so aus, aber kann man da auch funktionen inlinen ?

Ciao ...

locus vivendi
09-10-2006, 10:49
Kenn mich mit java ned so aus, aber kann man da auch funktionen inlinen ?
Java kennt kein "inline"-Keyword. Weil Java eh keine Trennung von Klassendefinition (hoffenlich verwende ich das Wort in Zusammenhang mit Java richtig) und von Implementierung der Methoden der Klasse kennt wäre das auch überflüssig; Man rufe sich in Errinerung: Das "inline"-Keyword von C++ dient als Hinweis für den Compiler, dass er eine bestimmte Funktion möglichst in den aufrufenden Code einbetten soll, aber mindestens so wichtig ist, dass inline-markierte Funktionen in einem Programm mehrfach definiert werden dürfen. Die Problematik die hinter beidem steht wird bei Java anders gelöst.

Javadoc (oder Doc++ oder Doxygen) hat meiner Meinung nach nicht viel mit der Frage der Sinnhaftigkeit von Headern, und allgemeiner einem Präprozessor zu tun. Eine Sprache mit der ernsthaft auf Betriebssystem-Ebene programmiert werden soll braucht einen vorgeschalteten Präprozessor um mit Unterschieden von Systembibliotheken umgehen zu können. Ich kann mir jedenfalls keine Alternative dazu vorstellen, bei der man nicht deutlich mehr aufwenden müsste.

Aber ein Präprozessor macht einen Modul-Mechanismus nicht überflüssig, und zum Glück wird an so einem Mechanismus für die mögliche Aufnahme in den C++-Standard auch gearbeitet. Ob es tatsächlich die nächste Ausgabe sein wird ist natürlich nicht sicher.