Class Generator bewerten
-
Hallo
Ich habe mich mal an die Programmierung von GUIs versucht und nun ist mein erstes, bescheidenes, Projekt fertig. Ich würde mich freuen, wenn es sich mal jemand anschaut und kritisiert. Lob und vor allem Tadel sind natürlich willkommen und werden eventuell umgesetzt )kommt darauf an, ob ich es hin bekomme)
Download: http://www.file-upload.net/download_05.11.06_vzil8g.zip.html
Vielen Dank für eure Mühe
chrische
-
Hm also ich habs nur mal ganz kurz getestet, aber das Proggie scheint mir "leicht" verbuggt zu sein. Ich weiß auch nicht mehr was ich jetzt ganz genau alles im Einzelnen gemacht habe, aber ich wollte mir nur eine einfache Klasse, mit einer Member-Variablen (int) generieren (ausserdem sollte auch ne .cpp Datei generiert werden). Zusätzliche sollte auch die ungarische Notation verwendet werden.
Als ich dann generieren wollte ist das Programm mit ner Speicherschutzverletzung abgeraucht
Die Klasse wurde allerdings trotzdem erzeugt (aber ohne .h oder .hpp Endung, könnte auch daran liegen dass ich einfach nur den Name der Klasse zum Speichern angegeben habe, aber hätte halt erwartet, dass dann automatisch ne .h Datei erzeugt wird).
Die Kommentare (Datum,Uhrzeit, Autor) hätte ich kompakter gehalten, aber ist wohl auch Geschmackssache.
Was aber keine Geschmackssache ist, ist der Name der Getter Methode. Wenn ich meine Membervaribale "var" nenne, dann ist "Getm_nvar" als Name der Getter-Methode etwas unglücklichAlso ich hoffe du fasst das nicht negativ auf, aber in der Zeit in der ich mich bei dem Programm durchgeklicke um ne Klasse zu generieren, schreibe ich von Hand bestimmt 3 Klassen
Zudem müsste ich dann das was generiert wird sowieso wieder meinen Bedürfnissen anpassen
-
Hallo
Erstmal danke für's Testen. Die Speicherzugriffsverletzung kann ich mir nicht erklären. Vielleicht wäre es ja möglich diese zu reproduzieren.
An den anderen beiden Punkten arbeite ich und werde nach Fertigstellung eine neue Version hochladen.
Ich würde mich freuen, wenn sich noch weitere Tester finden würden.
Das Tool sollte auch erstmal nur zum Probieren für mich sein und ich finde, dass man damit schneller Klassen erstellt als mit der Hand. Am Ende muss man aber wirklich noch etwas arbeiten, um alles genau anzupassen.
Ich würde mich auch über Ideen für weitere Versionen freuen.
chrische
-
Hallo,
wenn ich einem der Felder (bis jetzt wars egal welches) Return drücke, dann füllt er den gesamten Fensterbereich weiss aus, eventuell Nachrichten für die Return Taste abfangen und nichts tun lasse oder so.
Ein Rechtschreibfehler bei Membervariablen->'Datewntyp der Membervariable'.
Ansonsten interessantes Programm.
-
Also ich werd die Tage mal versuchen, dass zu reproduzieren. Kommt halt drauf an, wann ich Zeit finde
Also prinzipiell würde ich versuchen die GUI einfach intuitiver und kompakter zu gestalten. Klar ist leichter gesagt als getan, aber für jemanden der dein Programm zum ersten mal benutzt ist dann gar nicht so klar was man genau machen muss.
-
Hallo
Ich bin gerade dabei die Fehler auszumerzen. Das ganze Design will ich eigentlich nicht ändern, weil ich das schon ein paarmal gemacht habe. Es ist gar nicht so leicht das alles kompakt darzustellen. Ich habe auch extra rechts immer eine kurze Erklärung zu jedem Punkt.
chrische
-
Nicht schlecht. Hier noch ein paar Ideen:
- Integriere die *.cfg Datei in die Headerdatei. Ein Möglichkeit ist die Daten in komplet in Form von Komentaren unterzubringen oder du versuchst den Klassencode wieder zu parsen oder du mischst beides.
- Includeguards, wir wollen doch nicht MS only sein.
- Namespace
- Eine Option um den Copyctor und den op= private zu machen (oder um von boost::noncopyable zu erben).
- Eine Option um op!=, op>, op<= und op>= durch benutzen von op== und op< (oder nur mit op<) zu generieren.
- Optional ein automatisch erstellter op== der die Member miteinander vergleicht.
-
Hallo
Integriere die *.cfg Datei in die Headerdatei. Ein Möglichkeit ist die Daten in komplet in Form von Komentaren unterzubringen oder du versuchst den Klassencode wieder zu parsen oder du mischst beides.
Ich verstehe nicht ganz, was du meinst und was wäre an dieser Lösung besser?
Includeguards, wir wollen doch nicht MS only sein.
Wird erledigt. Obwohl ich die wirklich hässlich finde.
Namespace
Ist geplant. Der Benutzer kann den namespace angeben, in dem die Klasse leigen soll.
Eine Option um den Copyctor und den op= private zu machen (oder um von boost::noncopyable zu erben).
Brauch' ich zwar fast nie, aber ich denke mal drüber nach.
Eine Option um op!=, op>, op<= und op>= durch benutzen von op== und op< (oder nur mit op<) zu generieren.
Wie meinst du das?
Optional ein automatisch erstellter op== der die Member miteinander vergleicht.
Das ist wirklich eine sehr gute Idee. Wird demnächst umgesetzt.
Und zu guter Letzt:
Nicht schlecht.
Danke ich freue mich über Tester und Kritiker.
chrische
-
chrische5 schrieb:
Hallo
Integriere die *.cfg Datei in die Headerdatei. Ein Möglichkeit ist die Daten in komplet in Form von Komentaren unterzubringen oder du versuchst den Klassencode wieder zu parsen oder du mischst beides.
Ich verstehe nicht ganz, was du meinst und was wäre an dieser Lösung besser?
Beispiel:
#ifndef ..._HPP #define ..._HPP class foobar{ public: char b; short c; private: int a; }; #endif /*DO NOT EDIT THIS COMMENT! DATASTART classname = foobar member=a,b,c membertype=int,char,short memberaccess=private,public,public DATAEND*/
Somit kann man nicht in den Fall geraten, dass man die *cfg Datei verliert.
Eine Option um op!=, op>, op<= und op>= durch benutzen von op== und op< (oder nur mit op<) zu generieren.
Wie meinst du das?
inline bool operator!=(const A&a, const A&b){return !(a==b);} inline bool operator>(const A&a, const A&b){return b<a;} inline bool operator<=(const A&a, const A&b){return !(a>b);} inline bool operator>=(const A&a, const A&b){return !(a<b);}
Somit braucht der User nur noch den op< und den op== zu schreiben oder gar noch:
inline bool operator==(const A&a, const A&b){return !(a<b) && !(b<a);}
womit der User nur noch ein op< schreiben muss.