Hallo,
ich probiere aktuell etwas mit C++ herum und habe da eine Frage, auf welche ich auch nach einer ausgiebigen Suche keine Antwort gefunden habe:
Nehmen wir mal an, ich würde eine Bibliothek "2fAddition" erstellen wollen, welche vier float-Werte entgegennimmt und intern mit dem Datenkonstrukt "Vector2f" rechnet. Für die Klasse "Vector2f" gäbe es einen Header (Vector2f.h) und eine Implementation (Vector2f.cpp). Die Fassade "2fAddition.h" würde "Vector2f.h" inkludieren und in "2fAddition.cpp" für die Berechnung benutzen. Wenn ich es nun als Bibliothek builde, müsste ich die "Vector2f.h" immer mitgeben. Wie bekomme ich es allgemein hin, dass ich nur die Fassade "2fAddition.h" als Header mitgeben muss? In diesem Beispiel könnte man das natürlich alles in die "2fAddition.cpp" packen oder so, aber ich wüsste gerne, welche Strategie da bei größeren Projekten angewendet wird. Kann man vielleicht die "internen" Header irgendwie vor den restlichen Quellcode in die Bibliothek backen lassen?
Danke ;)
[C++] Für Bibliothek innere Header maskieren
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: [C++] Für Bibliothek innere Header maskieren
addition2f(float, float, float, float);Nehmen wir mal an, ich würde eine Bibliothek "2fAddition" erstellen wollen, welche vier float-Werte entgegennimmt
Du verteilst diese Zeile und die lib.
Warum würde eine Schnittstelle Interna inkludieren?!Die Fassade "2fAddition.h" würde "Vector2f.h" inkludieren
Re: [C++] Für Bibliothek innere Header maskieren
Und dann "Vector2f.h" in die "2fAddition.cpp" inkludieren? Die Lösung war zu einfach :D In "Vector2f.h" könnte ich dann aber wieder normal alles in den Header inkludieren, was ich an anderen Strukturen theoretisch bräuchte, oder?
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: [C++] Für Bibliothek innere Header maskieren
Du sollst nicht alles inkludieren, was du theoretisch bräuchtest, sondern nur, was du tatsächlich brauchst. Aber ja; möglich ist’s ;)