Hallo....
Ich hoffe das ich jetzt endlich das richtige Thema gefunden habe xD
Also ich möchte das ein Benutzer mehrere Kommandos eingeben kann.
zb: foo, bar, foobar, barfoo, start, stop, start foo, start bar, start foobar, start barfoo usw usf....
Ergo möchte ich Kommandos mit einer Parameter Liste erstellen....
Denkbar einfach wären ja strings Arrays zu benutzen und das ganze mit if else zu bauen....
Bei zwei drei Kommandos kann man das ja durchaus noch realisieren.... Aber bei 10 Komandos und mehr?
Kann man das mit den Command Design Patterns regeln?
Ich hab auf linuxtopia.org dazu einen kurzen artikel gelesen...
Hier mal dazu der Quellcode:
Soweit ist mir das ganze Thema auch klar
Ich würd das ganze zwar nicht unbedingt in einer Datei schmeißen sondern Hello, World und IAm jeweils in eine eigene cpp und hpp datei schmeißen....
mit macro.add(new Hallo); wird ja die Hallo klasse aufgerufen...
wie könnte ich das aber bewerkstelligen das ein user etwas eingeben kann, und entsprechend die richtige Funktion aufgerufen wird...
ich kann mir vorstellen das ich irgendwo auch noch die Kommandos "verfügbar" machen muss... also irgendwo "registrieren" muss, damit das Programm weiß, ah ja... diese und jenen Kommandos hab ich in meiner liste... also gebe ich das und das aus.. wenn ein falsches Kommando ausgegeben wurde dann geb ich halt ne Fehlermeldung zurück....
Oder bin ich hier doch schon wieder an der falschen stelle?? -.-" ^^
Ich hoffe das ich jetzt endlich das richtige Thema gefunden habe xD
Also ich möchte das ein Benutzer mehrere Kommandos eingeben kann.
zb: foo, bar, foobar, barfoo, start, stop, start foo, start bar, start foobar, start barfoo usw usf....
Ergo möchte ich Kommandos mit einer Parameter Liste erstellen....
Denkbar einfach wären ja strings Arrays zu benutzen und das ganze mit if else zu bauen....
Bei zwei drei Kommandos kann man das ja durchaus noch realisieren.... Aber bei 10 Komandos und mehr?
Kann man das mit den Command Design Patterns regeln?
Ich hab auf linuxtopia.org dazu einen kurzen artikel gelesen...
Hier mal dazu der Quellcode:
Code:
//: C10:CommandPattern.cpp
#include <iostream>
#include <vector>
using namespace std;
class Command {
public:
virtual void execute() = 0;
};
class Hello : public Command {
public:
void execute() { cout << "Hello "; }
};
class World : public Command {
public:
void execute() { cout << "World! "; }
};
class IAm : public Command {
public:
void execute() { cout << "I'm the command pattern!"; }
};
// An object that holds commands:
class Macro {
vector<Command*> commands;
public:
void add(Command* c) { commands.push_back(c); }
void run() {
vector<Command*>::iterator it = commands.begin();
while(it != commands.end())
(*it++)->execute();
}
};
int main() {
Macro macro;
macro.add(new Hello);
macro.add(new World);
macro.add(new IAm);
macro.run();
} ///:~
Soweit ist mir das ganze Thema auch klar
Ich würd das ganze zwar nicht unbedingt in einer Datei schmeißen sondern Hello, World und IAm jeweils in eine eigene cpp und hpp datei schmeißen....
mit macro.add(new Hallo); wird ja die Hallo klasse aufgerufen...
wie könnte ich das aber bewerkstelligen das ein user etwas eingeben kann, und entsprechend die richtige Funktion aufgerufen wird...
ich kann mir vorstellen das ich irgendwo auch noch die Kommandos "verfügbar" machen muss... also irgendwo "registrieren" muss, damit das Programm weiß, ah ja... diese und jenen Kommandos hab ich in meiner liste... also gebe ich das und das aus.. wenn ein falsches Kommando ausgegeben wurde dann geb ich halt ne Fehlermeldung zurück....
Oder bin ich hier doch schon wieder an der falschen stelle?? -.-" ^^