Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

qualle

Frischling

  • »qualle« ist der Autor dieses Themas

Beiträge: 6

Wohnort: Leipzig

Beruf: Schüler (12.)

  • Private Nachricht senden

1

30.05.2006, 19:02

frage zur koordination zwischen .h- und .cpp-datei

hallöchen allerseits, ich hab mal ne frage...

ich hab eine klasse entwickelt und ihre deklaration in eine datei.h ausgelagert, die implementierung der methoden in eine datei.cpp (diese includiert die datei.h). nun gibt es eine weitere datei main.cpp die auf die methoden der klasse zugreift, allerdings ebenfalls nur die datei.h includiert.

nun ist meine frage, woher der compiler weiß, dass er ebenfalls die datei.cpp einschummeln muss (was auf grund der nutzung der methoden notwendig ist), obwohl ich nur die datei.h includiere.

danke für eine erklärung,

qualle

Anonymous

unregistriert

2

30.05.2006, 19:05

Naja, das liegt an den Prototypen in der Header Datei. Die Prototypen
könntest du dann auch in die main.cpp schreiben.

qualle

Frischling

  • »qualle« ist der Autor dieses Themas

Beiträge: 6

Wohnort: Leipzig

Beruf: Schüler (12.)

  • Private Nachricht senden

3

30.05.2006, 19:14

ja das die in die main.cpp können, weiß ich, will ich aber wegen modularität vermeiden. woher weiß nun aber die main.cpp, dass sie aud die datei.cppp zugreifen muss?

ich hoffe ich hab da keinen denkfehler...

Anonymous

unregistriert

4

30.05.2006, 19:21

da die datei.cpp mit im Projekt ist guckt der compiler so weit ich weiß auch
da nach, wäre die datei nicht in dem Projekt, würde der Compiler
Fehlermeldungen auspucken trotz Prototypen.

qualle

Frischling

  • »qualle« ist der Autor dieses Themas

Beiträge: 6

Wohnort: Leipzig

Beruf: Schüler (12.)

  • Private Nachricht senden

5

30.05.2006, 19:29

ah alles klar. danke!

ich finds ja gut, dass es geklappt hat, aber mir ist nun wohler, wenn ich weiß dass der compiler da clever ist.

grüße aus leipzig

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

6

30.05.2006, 19:34

Zitat von »"DarkRaider"«

da die datei.cpp mit im Projekt ist guckt der compiler so weit ich weiß auch
da nach, wäre die datei nicht in dem Projekt, würde der Compiler
Fehlermeldungen auspucken trotz Prototypen.

Das stimmt so nicht.
Der Compiler kompiliert jede CPP-Datei einzeln und erzeugt daraus Objektcode.
Bei diesem Schritt kommt es allein auf die jeweilige CPP-Datei an, ob da noch andere sind, ist unerheblich.
Danach werden diese Objektcodes vom Linker zu einem Programm zusammengefügt.
Erst beim Linken entsteht also diese "Verbindung".

qualle

Frischling

  • »qualle« ist der Autor dieses Themas

Beiträge: 6

Wohnort: Leipzig

Beruf: Schüler (12.)

  • Private Nachricht senden

7

30.05.2006, 19:40

heißt das, dass wenn ich die main.cpp kompiliere (was ich getan habe), wird die datei.cpp auch in objektcode umgewandelt und gelinkt?

8

30.05.2006, 20:01

Wenn du die datei.cpp zu deinem Projekt hinzugefügt hast...

EDIT: Bzw. wäre das, wenn du VC benutzt, bei STRG-F5 der Fall...

qualle

Frischling

  • »qualle« ist der Autor dieses Themas

Beiträge: 6

Wohnort: Leipzig

Beruf: Schüler (12.)

  • Private Nachricht senden

9

30.05.2006, 20:12

gut, in ordnung. und um auch noch den letzten zweifel auszuräumen: würde ich NUR die main.cpp kompilieren überhäuft er mich mit fehlern richtig, da dann die datei.cpp nicht mitkompiliert wird?

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

10

30.05.2006, 20:14

das zu testen is ne frage von 2 minuten ;)

Werbeanzeige