C++ Äquivalent zu Packages?
-
Hallo,
aus der Java-Programmierung kenne ich die Packages, die sehr hilfreich sind, eine Vielzahl von Klassen zu gruppieren. Wie macht man das in C++?
Vermutlich mit namespaces oder gar eigenen Libraries.
Wenn es ein klares Beispiel zu einer gelungenen Strukturierung gäbe, das wäre schön.Hier ein paar Details zur Problemlage:
Ich möchte die 27 Klassen des Projektes in 5 Packages strukturieren.
Es soll dann Regeln geben, die festlegen, welche Packages aus einem gegeben Package genutzt werden dürfen. Kann man solche Regeln mit einer Art Interface im Code festschreiben und forcieren?
(Noch ist das Projekt klein, aber es wird wachsen und vor allem müssen es dann fremde Leute weiterentwickeln...)Vielen Dank für inspirierende Antworten!
-
Sowas wie Packages gibt es nicht. Packages und Namespaces sind zwar dafür da, um Namenskonflikte zu vermeiden, aber Packages sind auch physikalisch geschlossen. Bei Namespaces ist das nicht so, Namespaces sind offen. Ich kann also in Library A den gleichen Namespace haben, wie in Library B.
Meistens hat man für eine Library ein Namespace, und dann kann man darunter gruppieren. Wo die Namespaces liegen, ist egal. Das kann man so handhaben, wie man will. Das Buildsystem von C++ ist auch anders als von Java.