|
Registriert seit: 13. Dez 2005 13 Beiträge |
#22
Zitat von sakura:
Zitat von Hubble:
mäßiges exception handling
Hier nochmal im Klartext und für alle: C: void IrgendeineFunktion() { CMeinObjektTyp A( "irgendein Text"); EinFunktionsaufrufmitexception(); } Es ist nicht möglich diesen übersichtlichen Einzeiler auch in Delhpi zu schreiben. In Delhpi brauche ich alleine dafür var A:TMeinObjektTyp ; ... A:=TMeinObjektTyp.Create(..); EinFunktionsaufrufmitexception(); freeannil(A); Das sind Minimum 3 Zeilen. Absolutes minimum und falls ich ignoriere, daß die Instanz A in Delphi nicht freigeben wird und in C wird dies automatisch passiert. @alzaimar ich nehme an du meinst ein garbage collector. Das hat absolut nix damit zu tun. Es gibt keine schnelle Möglichkeit in Delhi so ein Objekt zu erzeugen. Das Ding landet in Delhpi immer auf dem Heap. Und wenn da ein kleiner Fehler passiert weil immer wieder ein Objekt nicht freigegeben wird ist den Speicher bald voll. Natürlich würde ich auf den Stack keine großen Objekte ablegen welche für die ganze Laufzeit des Programms zur Verfürgung stehen müssen. Aber sehr oft brauch man diese Objekte eben nur innerhalb dieser Funktion. Wer diesen Punkt nicht zumindest als sehr ungünstig in Delhpi anerkennt ist für mich diskussionsfäig. Also braucht man in Delphi zwingend einen try except block, der alle Eventualitäten abhandelt. In C ist dies in dieser Form nicht notwendig. Ich habe im Moment das Problem, das bei einigen hundert Buttons in meinem Projekt ein Lock (wie in meinem Beipiel auf Seite 4 beschieben) gemacht werden müßte. In C währe dies jemeils ein Einzeiler in der Ersten Zeile jedes ClickEvents. In Delphi sind dies jeweils mindestens 7 Zeilen an 3 Stellen des Events. Ich weiß das hätte man voher besser coden müssen aber ich hab das Projekt eben so übernommen.
Zitat von sakura:
Btw, Dein Bespiel mit automatischer Objektfreigabe kann man auch in Delphi 6 bauen.
Zitat von sakura:
Zitat von Hubble:
schlechte Pointernutzung
Ist eventuell Geschmackssache aber in C hab ich alle Möglichkeiten damit in Delhpi nicht. Sonst versuche ich auch Pointer so wenig wie möglich zu nutzen.
Zitat von sakura:
Zitat von Hubble:
VCL nicht Threadfest
Zitat von sakura:
Zitat von Hubble:
Objekte können nur mit .create erzeugt werden und wieder gelöscht werden
Aber ich kann eben auch wie oben beschrieben ein Objekt als Einzeiler erzeugen nutzen und danach Ignorieren weil er sich am Ende der Funktion unter allen Umständen selber löscht.
Zitat von sakura:
Zitat von Hubble:
Klassen und Ausprogrammierung sind immer getrennt
Wenn das ne kleine Hübesche Klasse ist dann schreibe ich eben lieber den Einzeiler direkt in die Deklaration und nicht erst 700 Zeilen später. Außderdem kann ich kleine Klassen (z.B. Miniparser) direkt über der Funktion als 10 Zeiler im .cpp File implementieren. In Delphi lass ich dass und schreib mir lieber ein ungekapselte Funktion die zwar das gleiche kann, aber unangenehmer ist im Handling. Beispiel mitten im cpp file : .... class CZeilenParser { public: CZeilenParser(char* Text){ /*machwasmittext;*/} int gibtDurchschitt(){return (Max-Min)/2;} private: int Min,Max; }; void NeKlasse::neFunktion(char* geparsterText) { CZeilenParser P(geparsterText); P.gibtDurchschitt(); ... Fertig: Natürlich geht in Delhpi auch irgendwie. Ist aber umständlicher kostet mehr Zeit und Übersicht. Natürlich nur für den Fall das diese Klasse ausschließlich in dieser Funktion verwendet wird. Ein mehrfach verwendetes Objekt würde ich nie mitten in den C++ Code hocken.
Zitat von sakura:
Zitat von Hubble:
nicht ausgereifte Projektverwaltung
Zitat von sakura:
Zitat von Hubble:
keine STL
z.B. eine Map mit 456.456 Nachnamen aus Holland. Die haben alle eine Nummer. Und ich möchte diese Nummer mit Angabe des Namens herausfinden (ohne Datenbank) C: map<string,int>Nachnamen; // Die Map Nachnamen["Van Deutz"]=154568; // Einfügen der Namen Nachnamen["Van Irgendwer"]=1568; // und noch 456.454 andere Van's .... //Jetzt mach ich einfach int NrvonD=Nachnamen["Van Deutz"]; // Und schon hab ich mit der Schnelligktiet von Ln(n) Vergleichen die Nummer von "Van Deutz"; Mir ist keine auch nur annähernd so elegante und schnelle Lösung in Delhpi bekannt. Natürlich kann ich anstatt des Strings auch ein beliebiges anderes Objekt verwenden.
Zitat von sakura:
Zitat von Hubble:
keine echten Templates
Zitat von sakura:
Zugegeben, ich liebe Delphi, aber ich diskutiere auch gerne die Für und Wider von Delphi. Also, ich warte auf Deine Antworten
Und egal was passiert ich werden die nächste Zeit noch Delhpi nutzen müssen. Hubble |
Zitat |
Ansicht |
Zur Linear-Darstellung wechseln |
Zur Hybrid-Darstellung wechseln |
Baum-Darstellung |
ForumregelnEs ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus. Trackbacks are an
Pingbacks are an
Refbacks are aus
|
|
Nützliche Links |
Heutige Beiträge |
Sitemap |
Suchen |
Code-Library |
Wer ist online |
Alle Foren als gelesen markieren |
Gehe zu... |
LinkBack |
LinkBack URL |
About LinkBacks |