Ich mag würde, so etwas bauen:„Templat“ ein Namespace
File 1:
template<typename Vector>
namespace myNamespace {
class myClass1{ myClass1(Vector v) {...} }
}
File 2:
template<typename Vector>
namespace myNamespace {
class myClass2{ myClass2(Vector v) {...} }
}
Natürlich ist dies nicht möglich, da man nicht Vorlage Namespaces. Stattdessen könnte ich eine Struktur anstelle eines Namespace verwenden, aber dann kann ich die Namespace-Funktionen nicht über mehrere Dateien verteilen.
Gibt es eine Lösung für ein solches Problem?
PS: Ich weiß, dass ich die Klassen anpassen könnte, aber dann müsste ich angeben, welchen Vektortyp ich verwenden möchte, wenn ich eine neue Klasse erstelle.
In Bezug auf Ihre PS: Wie denken Sie, einen Templates-Namespace zu haben würde die Notwendigkeit, den Typ des Vektors anzugeben, wenn Sie Klassen instanziieren? Du brauchst immer noch so etwas wie einen (fiktiven) 'using namespace myNamespace;' –
stakx
Ich bin dabei mit stakx. Und was ist das in deinem Code? – sbi
Ja, aber Sie könnten etwas tun: int function1() { using namespace myNamespace; myClass1 c1 = myClass1 (5); myClass2 c2 = myClass2 (2); } int function2() { Verwendung von Namespace myNamespace ; myClass1 c1 = myClass1 ('a'); myClass2 c2 = myClass2 ('b'); } Sorry, dass Int falsch ist, werde ich es löschen. Wie füge ich den Code hier richtig ein? –
Manuel