Extra Klasse für Berechnungen
-
Hi zusammen und gleich noch etwas

In meinem Programm enthalten viele Klassen dieselben Methode um irgendwelche Berechnungen durchzuführen.
Nun dachte ich mir eine extra Klasse Computations zu erstellen, in der ich alle Funktionen enthalten habe und dann von jeder anderen Klasse aus darauf zugreifen kann.
Nur, damit ich von dieser Klasse nicht erst ein Object erstellen muss, muss doch diese dann als static deklariert werden.
Möchte ich dann von einer anderen Klasse aus eine Berechnung durchführen, kann ich dies dann doch einfach mit:
Computations::multiply(2,4); aufrufen!?
Findet ihr soetwas sinnvoll oder würdet ihr in jeder Klasse die identischen Berechnungen stehen lassen?
-
Also den gleichen Code mehrmals zu schreiben macht keinen Sinn. Ich würde da eher eine normale Funktion (keine Member) machen. Und das ganze dann in einen Namespace packen. Oder sogar einfach die Operatoren überladen.
-
wo soll denn am besten der namespace definiert werden?
In einer extra Klasse oder wo ist es am sinnvollsten?
-
namespace computations { int multiply(int left, int right); } //... int result = computations::multiply(4, 5);Eine Klasse ist Unsinn, wenn es kein Objekt gibt.
Gruß
Don06
-
redbomber schrieb:
In einer extra Klasse oder wo ist es am sinnvollsten?
Natürlich global, anders kann man Namenräume gar nicht definieren. In andere Namensräume verschachtelt geht zwar, aber das ist im Grunde genommen immer noch global.
namespace Computations { Multiply(int Factor1, int Factor2); Absolute(float Value); Sign(float Value); // ... deine Funktionen halt }Aufrufen kannst du das dann wie bei statischen Memberfunktionen:
int main() { std::cout << Computations::Multiply(23, 17) << std::endl; }
-
Das einzige, was hier eine Klasse erfordern würde, wäre, wenn du noch Daten zu den Aufrufen speichern willst. Wäre wahrscheinlich aber unnötiger Overhead..