Zum Inhalt springen

Mehrere Klassen in ein Header unterbringen


Mr. Miyagi

Empfohlene Beiträge

Hi,

wie der Titel schon sagt, möchte ich mehrere Klassen in einen Header unterbringen.

Zum aktuellen Problem:

Ich habe einen Header in den stehen mehrere Funktionen, die nicht teil einer Klasse sind. Innerhalb der Cpp-Datei befinden sich dann diese Funktionen. In der Cpp Datei selber befinden sich noch ein paar Funktionen die nicht im Header auftauchen, da man nicht auf diese zugreifen soll, wenn man den Header einbindet.

Nun will ich eine Klasse hinzufügen ...

Die Deklaration in der Header-Datei verläuft ohne Probleme, der Compiler meckert nicht und das Programm startet so wie es soll. Will ich nun aber in der Cpp-Datei den Constructor und Destructor hinzufügen, beendet das Programm mit der Compilermeldung: "Klasse" has not been declared"

Ich hab sowohl den Header in die Cpp-Datei eingebunden (sonst würden die Funktionen davor schon nicht funktionieren), als auch den Namen der Klasse richtig geschrieben und auf Groß- und Kleinschreibung habe ich auch geachtet.

Warum tut dann der Compiler trotzdem so als ob er die Klasse in der Cpp-Datei nicht kennt ?

Danke schon mal im Voraus

mfg Mr. Miyagi

Link zu diesem Kommentar
Auf anderen Seiten teilen

Warum? Welchen Sinn soll das haben?

Der Sinn soll sein, dass man eine Art Mainheader hat, den man einbindet und

dieser dann mehrere Klassen beinhaltet. Anstatt dann alle Klassen einzeln in

sein Projekt einzubinden, soll man einen großen Header einbinden können.

Damit man nicht alles in eine Cpp-Datei macht, gibt es einen Header und

mehrere Cpp-Dateien dazu die dann die jeweiligen Funktionen enthalten.

Habe gerade ein kleines Beispiel gemacht, aber das führt er ohne Probleme aus. Werde

erst einmal weiter versuchen das eigentliche Projekt auch so zum laufen zu bekommen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hat sich schon erledigt.

Habe in dem Projektordner einen Header zum DLL Export und einen für das

Testen der Klassen und Funktionen. Habe die Klasse im Projektheader

deklariert, aber in der Cpp-Datei den Header für den DLL Export noch zu

stehen gehabt. Ist ja dann kein Wunder das die Klasse dann in der Cpp-

Datei nicht erkannt wird. :rolleyes:

Na ja, war wohl gestern etwas blind auf den Augen. :D

Danke euch ...

Mr. Miyagi

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der Sinn soll sein, dass man eine Art Mainheader hat, den man einbindet und

dieser dann mehrere Klassen beinhaltet. Anstatt dann alle Klassen einzeln in

sein Projekt einzubinden, soll man einen großen Header einbinden können

Main.h:


#pragma once

#include "class1.h"

#include "class2.h"

#include "classn.h"
class1.cpp:
#include "Main.h"
class2.cpp:
#include "Main.h"
classn.cpp:
#include "Main.h"

Wo ist da das Problem?

Wer die Klassen brauch includiert die Main.h. :rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der Sinn soll sein, dass man eine Art Mainheader hat, den man einbindet und

dieser dann mehrere Klassen beinhaltet. Anstatt dann alle Klassen einzeln in

sein Projekt einzubinden, soll man einen großen Header einbinden können.

Das ist nur dann sinnvoll, wenn man diese Klassen auch immer zusammen braucht.

Man holt sich nämlich damit ein anderes Problem ins Haus: Wenn man irgendetwas an diesem "Sammelheader" ändern muss, muss man alle Quellcodedateien, die diesen Header einbinden, neu erstellen. Bei gut aufgeteilten Headern muss man nur die neu compilieren, die den geänderten Teil wirklich brauchen. Stichwort Compilezeitabhängigkeiten.

Das kann bei größeren Projekten einen immensen Zeitunterschied ausmachen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...