Forum: Programmieren allgemein
Delphi
by Mikkey,
31. Jul 2014
In meinem Delphi hat ein Record keinen Konstruktor und auch keine Klassenfunktionen, die so tun könnten als ob.
Forum: Programmieren allgemein
Delphi
by Mikkey,
31. Jul 2014
Darauf wollte ich auch erst hinweisen, aber
wenn TAuto keine Klasse wäre, würde myCar := TAuto.Create( 'BMW' ); nicht funktionieren :-D
Forum: Programmieren allgemein
Delphi
by Mikkey,
31. Jul 2014
Es mag C++-Compiler geben, die (ähnlich wie Delphi beim '@' in Methodenparametern) das Sternchen generös einfügen.
Und (abgesehen davon, dass 'object' als veraltet gekennzeichnet wird) wie stellst Du dann echte Referenzvariablen dar:
{
CKlasse obj(..);
CKlasse* ptrObj = new CKlasse(..);
CKlasse& refObj = *ptrObj;
Forum: Programmieren allgemein
Delphi
by Mikkey,
30. Jul 2014
Delphi hat dafür kein Pendant, ebensowenig, wie für das Objektarray aus Deinem anderen Beispiel.
In C# wurde das auch abgeschafft. Beide Sprachen bieten wegen der automatischen Dereferenzierung nicht die Syntax, um Objektreferenzen von Objektvariablen zu unterscheiden.
Forum: Programmieren allgemein
Delphi
by Mikkey,
28. Jul 2014
pSpielerliste = new CSpieler;
generiert ein Array von Objekten der Typen CSpieler, auf die Elemente eines solchen Arrays greift man (wie in Delphi auch) mit "" zu.
In C werden Arrays und Pointer gleichartig behandelt:
"*Ptr" und "Ptr" geben einen Zugriff auf denselben Speicher mit demselben Typ, ebenso wie
"(*Ptr).Member", "Ptr->Member" und "Ptr.Member".
Wenn Du mehr Anforderungen...
Forum: Programmieren allgemein
Delphi
by Mikkey,
28. Jul 2014
Du solltest die Begriffe Referenz und Zeiger nicht durcheinanderbringen.
Man braucht es! Wenn irgendein schrottiger Compiler den Zugriff ohne erlaubt, dann solltest Du das als Fehler betrachten. ein Zeiger ist ein Zeiger und muss auch so benutzt werden.
Normalerweise verwendet man in C++ aber statt "*" und "." "->", dann wird auch besser deutlich, was man da tut.
...