000
08.12.2006, 00:09 Uhr
Yadgar
|
High!
Nach einem längeren Ausflug in die Welt von Access und MySQL komme ich wieder dazu, mich mit meinem Grafikprogramm-Projekt YIP ("Yadgar's Image Processor") zu beschäftigen... letzter Stand der Dinge war ja, dass ich eine Klasse für Grafikbearbeitungskommandos (das Programm soll fürs erste kommandozeilenorientiert sein) programmiert hatte:
C++: |
class Command { private: string name; // der Befehl selbst unsigned short params; // Anzahl der erforderlichen Parameter string helptxt; // Kurzbeschreibung, die nach dem Befehl --help angezeigt wird string errormsgs[]; // Fehlermeldung(en) public: Command(string in_name, unsigned short in_params, string in_helptxt, string in_errormsgs[]); // Konstruktor };
|
Damit eine (globale) Parser-Funktion den an main() übergebenen Eingabestring auf gültige Befehlswörter und deren etwaige Parameter überprüfen kann, sollte es ein globales Array mit Command-Objekten geben... die Frage ist nur: wie initialisiere ich so ein Gebilde?
Kann ich Array und einzelne Command-Objekte in einem Schritt initialsieren, etwa so:
C++: |
const unsigned short nCommands = 2; // Anzahl der bereits implementierten Befehle
Command commands[nCommands] { commands[0] ( "--help", 0, "Listet alle verfügbaren Befehle mit Kurzbeschreibungen auf", { "Parameter wurde ignoriert" } // --help kommt ohne Parameter aus ), commands[1] { .... } commands[2] { .... } };
|
- oder muss ich erst die einzelnen Command-Objekte jedes für sich erzeugen und erst in einem zweiten Schritt das Command-Array mit den fertigen einzelnen Command-Objekten füllen?
Und wie initialisiere ich das String-Array mit den kommandospezifischen Fehlermeldungen innerhalb des Command-Objekts? Ist die obige Schreibweise korrekt?
Bis bald im Khyberspace!
Yadgar
Now playing: Discovery (Michael Garrison) -- Flagmaker - ein Programmier-Blog |