Zum Inhalt springen

Mehrere Klassen in ein Header unterbringen


Empfohlene Beiträge

Geschrieben

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

Geschrieben
Hi,

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

Warum? Welchen Sinn soll das haben?

Klassedeklaration = Header

Klassenimplementation = Cpp

(abgesehen von Tempates)

Phil

Geschrieben
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.

Geschrieben

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

Geschrieben
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:

Geschrieben
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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...