AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

C++ Builder oder Visual C++

Ein Thema von MrSpock · begonnen am 3. Nov 2015 · letzter Beitrag vom 22. Dez 2015
 
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#12

AW: C++ Builder oder Visual C++

  Alt 4. Nov 2015, 19:56
Einzig und allein das RAII basierte Exception Handling geht mir vom Konzept her ziemlich gegen den Strich.
Komisch - RAII ist das, was ich in Delphi so ziemlich am meisten vermisse.
RAII ansich ist schon recht cool. Nur finde ich das Exception Handling recht umständlich. Mir fehlt sowas wie das gute alte try . ScopeGuards finde ich unintuitiv, da hier der finally Block praktisch vor dem try Block steht und sämtliche Resourcen in extra Klassen zu kapseln (z.b. alle möglichen Arten von Handles bei Verwendung der WinAPI) ist aufwändig und unübersichtlich.

Copy/Move-Semantics-Verstehe ich nicht?
Zu komplex, um das jetzt mit eigenen Worten zu erklären, aber C++ allocated Objekte auf dem Stack und nicht (wie z.b. Delphi) auf dem Heap. Hier hast du jetzt die Möglichkeit Objekte zu "moven" statt zu kopieren. Das hat unter anderem Performance-Vorzüge und ist auch oft semantisch sinnvoll (unique_ptr, etc).
Wenn es dich sehr stark interessiert, dann findest du hier eine ausführliche Erklärung im Rahmen des Copy-Swap-Idioms:
http://stackoverflow.com/a/3279550

Templates - Für was was man mit anderen Sprachfeatures nicht genauso gut lösen kann.
Das Template System ist eine komplette funktionale Programmiersprache, die in C++ eingebettet ist. Normale Generics können hier einpacken und die Delphi Generics erst recht
Sehr mächtig sind auch Template-Spezialisierungen. Grob gesagt hat man ein Grund-Template mit einer bestimmten Signatur und darüber definiert man beliebig viele spezialisierte Templates, die z.b. eine bestimmte Klasse / einen bestimmten Datentyp matchen. Die STL hat beispielsweise eine Art Array Implementation namens std::vector, die man über
Code:
std::vector<int>
deklarieren kann. Wie ein normales Array in Delphi reserviert die Klasse intern dann für jedes Element sizeof(int) an Speicher. Verwendet man aber einen
Code:
std::vector<bool>
nimmt der Compiler das für bool spezialisierte Template und arbeitet intern mit Bitfields, weshalb 8 Werte nicht mehr 8, sondern nur noch 1 Byte belegen.

Was spricht denn wirklich gegen den C++ Builder?
  1. Kostet Geld.
  2. Steinzeitliche IDE (schlechte Code-Completion, schlechtes Highlighting, keine intelligenten Hints, etc). Das ist ganz schlecht für C++ Neueinsteiger.
  3. Kompatibilität. Viele Libraries machen sich wie gesagt nicht die Mühe den C++ Builder und seine Eigenarten per #ifdef abzudecken.
  4. Code Optimierung & Performance des Kompilats hängt anderen Compilern um Jahre hinterher. Das kann grade bei komplexen Berechnungen durchaus einen Unterschied machen.

Und mal speziell im Kontext dieser Masterarbeit: Braucht deine Tochter wirklich eine komplexe GUI? Ein Fenster mit zwei Buttons, das ein Bild anzeigt bekommt man doch selbst mit purer WinAPI in 10 Minuten zusammengebastelt
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
 


Forumregeln

Es 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

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz