Ich habe da eine kleine Sammlung einfacher Funktionen zur Bildmanipulation. Das sind nur Funktionen, keine Klassen. Diese habe ich alle in einer Datei unter einem Namensraum (ImageT=ImageTools) zusammengefasst.
Jetzt brauche ich aber eine neue Funktion und die bisherigen nicht. Daraus ergibt sich die Frage, ob ich die Funktionen auf unterschiedliche Dateien aufteilen kann, obwohl sie alle zum gleichen Namensraum gehören sollen?
Da mein Makefile schon ca. 30 Module enthält, möchte ich das nicht einfach blind ausprobieren, um anschließend festzustellen, dass ich alles wieder zurückdrehen muss.
Die "neue" Funktion ist bereits in mehreren Klassen lokal vorhanden, mit leicht abweichenden Namen, und dass soll jetzt zentralisiert/optimiert werden.
C++: Frage zu namespace [gelöst]
C++: Frage zu namespace [gelöst]
Zuletzt geändert von dakuan am 15.05.2021 20:26:51, insgesamt 1-mal geändert.
Re: C++: Frage zu namespace
Du meinst so etwas?
Ja, das geht und ist kein Problem.
Die namespaces sind nicht an einen Header oder eine Compilationunit gebunden. Der std-Namensraum ist genauso über diverse Dateien mit Inhalt gefüllt, auch da bindest du ja nicht nur einen einzigen Header ein.
Code: Alles auswählen
// Header a.h
namespace mynamespace {
int do_foo();
double calc_bar();
}
// Datei a.c
#include "a.h"
namespace mynamespace {
int do_foo() { return 42; }
double calc_bar() { return 3.1415; }
}
// Header b.h
#include <string>
namespace mynamespace {
std::string get_baz();
}
// Datei b.c
#include "b.h"
namespace mynamespace {
std::string get_baz() { return "baz"; }
}
Die namespaces sind nicht an einen Header oder eine Compilationunit gebunden. Der std-Namensraum ist genauso über diverse Dateien mit Inhalt gefüllt, auch da bindest du ja nicht nur einen einzigen Header ein.
Manchmal bekannt als Just (another) Terminal Hacker.
Re: C++: Frage zu namespace
Ja, danke, genau das meinte ich.
Das bedeutet dann wohl auch, das ich meine bisherige Funktionssammlung in einzelne Dateien aufspalten kann um sie dann zu einer Lib zu machen wo dann beim Linken nur das verwendet wird, was auch wirklich benötigt wird.
Das bedeutet dann wohl auch, das ich meine bisherige Funktionssammlung in einzelne Dateien aufspalten kann um sie dann zu einer Lib zu machen wo dann beim Linken nur das verwendet wird, was auch wirklich benötigt wird.
Genau diese Info fehlt in meinen Büchern.Die namespaces sind nicht an einen Header oder eine Compilationunit gebunden.