Klassen: Hilfestellung bei Interaktion von verschiedenen Objekten
-
Wo liegt das Problem?
-
irreal++ schrieb:
Wo liegt das Problem?
Dir fehlt grundlegendes Verständnis.
-
Gehts genauer?
Die Aussage hilft mir jetzt nämlich genau 0 weiter...
-
OMG mach mal konkret.
Was sind das für Klassen, was machen die, was für Config, wann soll die "umgeschaltet" werden, wieso nicht beim Funktionsaufruf etc.Dann kann dir evtl. jemand sagen wie man das als erfahrener Programmierer lösen würde. So abstrakt kann man es nicht beantworten. Das was du machen willst ist zwar fast sicher Unsinn, aber um zu sagen was die weniger unsinnige Lösung wäre braucht man einfach mehr Informationen.
-
Die anderen Klassen nehmen Einstellungen vom Benutzer auf und die configs sollen die Einstellungen verwalten. Umgeschaltet werden soll, wenn der der Benutzer andere Einstellungen verwenden möchte. Also ein Umschalten zwischen config1, config2 usw. und auf die umgeschaltete config soll dann auch von den anderen Klassen, die die Einstellungen vom Benutzer entgegen nehmen, aufnehmen und verarbeiten.
Wenn ich es direkt in den Funktionsaufruf einbauen würde, würde ich mich ja auf eine bestimmte config festlegen, statt, dass automatisch die aktive config genommen wird. Welche aktiv ist, erfährt man ja von der Variable.
Und umschalten beim Funktionsaufruf macht ja keinen Sinn, weil es ja unabhängig geschehen soll. Benutzer nimmt Einstellung vor != Benutzer möchte neue config verwenden/erstellen
-
Immer noch nicht verständlich?
-
struct Config { ... }; struct ConfigChooser { std::vector<Config> configs; int current; ConfigChooser() { // init configs } void choose() { ... current = 42; ... } Config& currentConfig() { return configs[current]; } }; struct ConfigUser { void useConfig( Config& config ) { config.function(); } }; int main() { ConfigChooser cc; ConfigUser cu; ... cu.useConfig( cc.currentConfig() );
-
Okay, aber wieso ist das nun eine bessere Lösung? Hier würde doch viel mehr Ressourcen benötigt werden, oder?
Zudem, wieso ausgerechnet struct und nicht class? weil man dann public: nicht braucht?
-
irreal++ schrieb:
Okay, aber wieso ist das nun eine bessere Lösung? Hier würde doch viel mehr Ressourcen benötigt werden, oder?
Dann zeig mal, wie du es mit weniger machst.
Zudem, wieso ausgerechnet struct und nicht class? weil man dann public: nicht braucht?
Das kannst du halten wie ein Dachdecker, nur nicht so hoch.
-
Ja wie ich die ganze Zeit schon sage: eine (globale )Variable, die z.b. die Adresse enthält.
-
irreal+++ schrieb:
Ja wie ich die ganze Zeit schon sage: eine (globale )Variable, die z.b. die Adresse enthält.
Zeig die gesparten Resourcen!