[noob] Klasse/Methoden scheinbar bereits definiert?!
-
hi,
ich habe mich entschlossen neben Java auch in C++ zu programmieren. Leider geht das nicht so reibungslos, wie ich mir das vorgestellt habe. Ich will eigenlich nur eine einfache Klasse (triple.cpp) erstellen und in meiner main-funktion (main.cpp) gebrauchen. Allerdings meldet sich immer der Linker und sagt, ich hätte die Klasse Tripel schon in "main" definiert. Ich habe weder auf Google noch irgendwo im Forum etwas hilfreiches gefunden, weil ich erhlich gesagt nicht genau weiss, nach was ich suchen soll.
Hier mal die zwei Dateien:
//triple.cpp #include <iostream> using namespace std; class Triple { public: float f1; float f2; float f3; Triple(float a, float b, float c); void scale(float a); void ausgabe(); }; Triple::Triple(float a, float b, float c) { f1 = a; f2 = b; f3 = c; } void Triple::scale(float a) { f1 *= a; f2 *= a; f3 *= a; } void Triple::ausgabe() { cout << f1 << endl; cout << f2 << endl; cout << f3 << endl; }#include <iostream> #include "triple.cpp" using namespace std; int main() { Triple trp(2.0f,2.1f,2.4f); trp.scale(2.0f); trp.ausgabe(); return 0; }Danke schon mal jetzt....
-
die klassendefinition kommt in triple.h, die implementierung bleibt in triple.cpp
wer auch immer auf funktionitaet von triple zugreifen will, inkludiert nur triple.h//triple.h #ifndef TRIPLE_H #define TRIPLE_H class Triple { public: float f1; float f2; float f3; Triple(float a, float b, float c); void scale(float a); void ausgabe(); }; #endif
-
hi,
das ging ja flott!
Danke für die Antwort.Also muss man in C++ für jede Klasse noch einen Header schreiben? Oder geht das auch irgendwie einfacher?
MfG
-
geht das auch irgendwie einfacher?
leider nicht.
das ist auch eins der wenigen dinge die ich in java wirklich angenehmer geloest finde - sofern man die nichtexistenz eines linkers als "loesung" bezeichnen kann
-
geht das auch irgendwie einfacher?
Wollte nicht rumflamen.

Nochmals danke.
-
geht das auch irgendwie einfacher?
Ich sehe das als großen Vorteil von C++ gegenüber Java. Bei kleinen Klassen mag das egal sein. Bei größeren Klassen die über ein paar 1000 Zeilen gehen verlierst du dagegen schnell den Überblick wenn du einfach nur wissen willst, wie den Methode XY nochmal genau definiert war.
Zudem interessiert den "Benutzer" einer Klasse nicht umbedingt wie sie implementiert ist.Ansonsten kann man kleine Methoden auch direkt im Header definieren, also wie in Java.

Coolcat
-
wenn du einfach nur wissen willst, wie den Methode XY nochmal genau definiert war.
So habe ich das noch gar nicht gesehen.
Allerdings gibt es ja in den Meisten IDE's eine Ansicht aller Methoden einer Klasse.
Offtopic:
Benutzt hier eigentlich jemand Eclipse für c++ zu coden?MfG
-
einGast schrieb:
...
Offtopic:
Benutzt hier eigentlich jemand Eclipse für c++ zu coden?MfG
Jo, ich !
Gruß,
Simon2.