 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Toni Fuu Guest
|
Posted: Tue Dec 14, 2004 12:17 pm Post subject: Klasse in anderer Klasse nutzen |
|
|
Hallo,
ich habe da eine Frage.
Wenn ich eine Klasse z.b "Auto" erstelle ist sie ja in auto.h
und auto.cpp definiert und implementiert.
wenn ich diese Klasse nun in einer anderen Klasse z.b. "Werkstatt"
nutzen möchte, wie mache ich das?
Ich kenne #include "auto.h", aber dann fehlt mir ja die Implementierung der
Klasse Auto, oder bin ich da auf dem Holzweg?
Weiss der Compiler das "Auto.cpp" dazu gehört?
Danke und gruß
Toni Fuu
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Oliver Schneidewind Guest
|
Posted: Tue Dec 14, 2004 5:30 pm Post subject: Re: Klasse in anderer Klasse nutzen |
|
|
Toni Fuu wrote:
| Quote: | Hallo,
ich habe da eine Frage.
Wenn ich eine Klasse z.b "Auto" erstelle ist sie ja in auto.h
und auto.cpp definiert und implementiert.
|
Soweit hast du recht !
| Quote: | wenn ich diese Klasse nun in einer anderen Klasse z.b. "Werkstatt"
nutzen möchte, wie mache ich das?
Ich kenne #include "auto.h", aber dann fehlt mir ja die Implementierung der
Klasse Auto, oder bin ich da auf dem Holzweg?
|
Die Implementierung von Auto, intressiert Werkstatt nicht. mit den
#include "auto.h" sagst du in werkstatt.h nur das es irgendwo eine
Objekt gibt was die eingenschaften deiner Klasse auto hat und mit den
dort Vereinbaten methoden was anfangen kann .
| Quote: | Weiss der Compiler das "Auto.cpp" dazu gehört?
Nein, erst mal nicht. die Datei Auto.cpp intressiert deine Programm |
auch nicht. Es muss nur das Auto.obj ( sog. Objektdatei )und das auto.h
kennnen. Die Auto.obj, kann dein Kompiler aus der Auto.cpp erzeugen. Wie
du dein Kompiler mitteilst das, er die Objektdatei erzeugen soll und in
dein Programm einfügt, hängt aber von dein Compiler ab.
mfg
Oliver Schneidewind
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Martin Herrmann Guest
|
Posted: Tue Dec 14, 2004 5:52 pm Post subject: Re: Klasse in anderer Klasse nutzen |
|
|
Toni Fuu (2004-12-14):
| Quote: | wenn ich diese Klasse nun in einer anderen Klasse z.b. "Werkstatt"
nutzen möchte, wie mache ich das?
|
#include "auto.h" und beim Linken "auto.o" dazunehmen.
| Quote: | Ich kenne #include "auto.h", aber dann fehlt mir ja die Implementierung der
Klasse Auto, oder bin ich da auf dem Holzweg?
Weiss der Compiler das "Auto.cpp" dazu gehört?
|
Der Compiler muss das nicht wissen, der erzeugt nur Aufrufe an die
Funktionen, und wie das geht (also Parametertypen, Rückgabewerte etc),
steht in der Klassendeklaration. Für das Auflösen der Funktionsaufrufe
ist der Linker zuständig (inline und template mal außen vor).
Die Programmerstellung läuft in zwei Schritten ab:
1. Compilieren:
werkstatt.cpp -> werkstatt.o
auto.cpp ->auto.o
2. Linken:
auto.o werkstatt.o -> programm
Gruß,
Martin
--
Mit ungefähr 100 Std/km deutlich abheben. Fahrt aufholen. Steigen bei
ca. 120 Std/km.
- Flughandbuch DR400/180 R
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Rolf Magnus Guest
|
Posted: Tue Dec 14, 2004 6:39 pm Post subject: Re: Klasse in anderer Klasse nutzen |
|
|
Toni Fuu wrote:
| Quote: | Hallo,
ich habe da eine Frage.
Wenn ich eine Klasse z.b "Auto" erstelle ist sie ja in auto.h
und auto.cpp definiert und implementiert.
|
Die Dateien kannst du nennen, wie du möchtest.
| Quote: | wenn ich diese Klasse nun in einer anderen Klasse z.b. "Werkstatt"
nutzen möchte, wie mache ich das?
Ich kenne #include "auto.h", aber dann fehlt mir ja die Implementierung
der Klasse Auto, oder bin ich da auf dem Holzweg?
|
Die Implementierung braucht der Compiler nicht. Um einen Funktionsaufruf
aufzurufen, braucht er nur deren Signatur. Um die Implementation kümmert
sich nachher der Linker.
| Quote: | Weiss der Compiler das "Auto.cpp" dazu gehört?
|
Nein.
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|