AGB  ·  Datenschutz  ·  Impressum  







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

C++ nach Delphi

Ein Thema von gmc616 · begonnen am 27. Okt 2006 · letzter Beitrag vom 27. Okt 2006
Antwort Antwort
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#1

C++ nach Delphi

  Alt 27. Okt 2006, 13:43
Humppa C-Gurus,

ich versuch mich gerade daran eine C-Structur nach Delphi zu übersetzen und stoße dabei auf ein Problem:
Ich kann kein C++ !

kann mir bitte Einer erklären was das zu bedeuten hat.
Code:
#define GetDocType(options) ((Options & SNDO_DOCTYPE_MASK) >> 12)
#define GetSRDocType(sr) GetDocType ((sr)->Options)
#define GetSRDocTypeEx(sr) (((sr)->Flags & SNDF_APPOINTMENT) ? DOC_TYPE_SCHEDULE : \
                            ((sr)->Flags & SNDF_CONNECT) ? DOC_TYPE_ECT : \
                            GetSRDocType (sr))
zur näheren Erläuterung der Variablen:
Options und Flags sind von Datentyp word in dem bitweise einzelne Eigenschaften gesetzt sind.
SNDO_xxx bzw. SNDF_xxx sind Bitmaskierungen.

Aber was haben die Operatoren wie ->, &, ? und : \ zu bedeuten?
Bitte helft mir auf die Sprünge, denn ich habe keinen Bock mir wegen diesen "Kleinigkeiten" extra, so kurz vor dem Ziel, ein C++ Buch zu kaufen.

Danke schon mal im Voraus.
gmc
  Mit Zitat antworten Zitat
Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#2

Re: C++ nach Delphi

  Alt 27. Okt 2006, 13:56
Tja das sind sog. Templates, die gibbet in Delphi nich. Einfachste Lösung wäre jeweils ne Funktion zu definieren, die genau das macht, was jeweils in den Klammern steht und genauso heisst, wie das Template.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#3

Re: C++ nach Delphi

  Alt 27. Okt 2006, 14:12
Zitat von gmc616:
Aber was haben die Operatoren wie ->, &, ? und : \ zu bedeuten?
  • Instanz->Methode() ist in C++ ca. das selbe wie (*Instanz).Methode(). In Delphi wird das ganz normal aufgerufen: Instanz.Methode().
  • & ist der binaere und-Operator. In Delphi bekannt als Delphi-Referenz durchsuchenand
  • ? : ist die Syntax fuer eine Bedingte Zuweisung:
    Code:
    Variable = Bedingung ? WertWennBedingungTrue : WertWennBedingungFalse
    Du kannst das ueber eine if-Abfrage loesen. IIRC gabs aber auch ein aehnliches Konstrukt in Delphi.
  • \ Ist bei Praeprozessoranweisungen oder einzeiligen Kommentaren die Anweisung, dass die Zeile in der naechsten fortgesetzt wird.
    Code:
    #define blubb x * y * \
                  (z + 1)
    //ist das selbe wie
    #define blubb x * y * (z + 1)
Zitat von gmc616:
Bitte helft mir auf die Sprünge, denn ich habe keinen Bock mir wegen diesen "Kleinigkeiten" extra, so kurz vor dem Ziel, ein C++ Buch zu kaufen.
Man braucht nicht zwingend Buecher, es gibt haufenweise (z.T. auch gute) C++Tutorials

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#4

Re: C++ nach Delphi

  Alt 27. Okt 2006, 20:18
Noch ne kleine Anmerkung:

Zitat von Sidorion:
Tja das sind sog. Templates, die gibbet in Delphi nich. Einfachste Lösung wäre jeweils ne Funktion zu definieren, die genau das macht, was jeweils in den Klammern steht und genauso heisst, wie das Template.
Das sind keine Templates, sondern Makros. Im Gegensatz zu Templates, die deutlich praktisch sein können, bringen Makros manchmal Probleme. Warum? Sie verhalten sich anders, als Funktionen, da sie vom Präprozessor behandelt werden, was manchmal doch etwas "verwirrend" sein kann. Ist dieses "verwirrende" Verhalten erwünscht, hat man mitunter Probleme mit dem Übersetzen...

Beispiel(ich hoffe ich mach das jetzt richtig. Hab mich bisher aus gutem Grund von Makros fern gehalten):
Code:
#define SQR(x) (x * x)

// ist nicht äquivalent zu:

int sqr(int x)
{
  return x * x;
}

// und zwar dann, wenn man folgendes macht:

y = sqr(1 + 2); // ist 9
y = SQR(1 + 2); // ist IMHO 5

// warum? der Präprozessor macht folgendes daraus:
y = 1 + 2 * 1 + 2;
So ein Verhalten lässt sich mit Funktionen (zum Glück) nicht nachbilden...

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz