Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Guten Tag! Ich bin ein Anfänger. Ich habe eine Frage bezüglich der Verwendung des "*"-Symbols (Sternchen).
In der Beispieldatei:
"*" wird verwendet, um einen Zeiger auf ein Objekt zu deklarieren - das ist irgendwie klar.
Weiter:
Es ist nicht klar, wofür das "*"-Zeichen verwendet wird.
In der Hilfe heißt es: "Es ist möglich, Objekte eines komplexen Typs dynamisch zu erzeugen. Dies geschieht mit Hilfe des new-Operators" Der new-Operator wird hier nicht verwendet. Bitte erklären Sie genauer, wie und in welchen Fällen das "*"-Zeichen verwendet werden kann.
Aber weiter:
Es ist nicht klar, was das dort angebrachte "*"-Zeichen bedeutet.
Man kann es so schreiben
Es wird keinen Unterschied geben, es geht nur um den Stil der Gestaltung und einen kleinen ideologischen Ansatz.
Sie können es so schreiben
Es gibt keinen Unterschied, es geht nur um den Stil des Designs und einen kleinen ideologischen Ansatz.
D.h..
CListItem *next(){return(next);}dies ist eine Deklaration eines Zeigers auf das Objekt (oder die Methode?) next()? Und dann, in geschweiften Klammern, wird das Objekt next selbst zurückgegeben? Verstehe ich das richtig?
Ich verstehe, dass alles sehr einfach sein sollte, aber da ich noch nie mit OOP in Berührung gekommen bin, tappe ich im Dunkeln. Bitte helfen Sie mir zu verstehen.
D.h..
ist eine Deklaration eines Zeigers auf das Objekt (oder die Methode?) next()?
Und dann, in geschweiften Klammern, wird das nächste Objekt selbst zurückgegeben, verstehe ich das richtig?
Der Körper der Funktion wird in geschweifte Klammern gesetzt,
{return(next);}bedeutet das, dass die Funktion die Variable next zurückgibt, die den Typ eines Zeigers auf ein Objekt der Klasse CListItem hat. Dies stimmt im Allgemeinen mit dem Typ der Funktion überein.
Gleich nach dem ersten Beispiel enthält der Artikel den Satz "Die Variable pstatus ist ein Zeiger auf ein Objekt, aber wir haben absichtlich "vergessen", das Objekt selbst mit dem new-Operator zu erstellen und es als Parameter an die Funktion PrintStatus() zu übergeben ".
1. Es ist unklar, was Sie "genau" übergeben haben - einen Zeiger oder ein Objekt?
2. In dem Beispiel gibt es keine PrintStatus()-Funktion.
Ich glaube, es liegt ein Fehler vor:
Es scheint, dass das neue Listenelement prev und first hat, die auf das zweite Element verweisen, und das zweite Element erhält keinen Verweis auf das erste Element.Gleich nach dem ersten Beispiel enthält der Artikel den Satz "Die Variable pstatus ist ein Objektzeiger, aber wir haben absichtlich "vergessen", das Objekt selbst mit dem new-Operator zu erstellen und es als Parameter an die Funktion PrintStatus() übergeben ".
1. Es ist unklar, was genau übergeben wurde - ein Zeiger oder ein Objekt?
2. Es gibt keine PrintStatus()-Funktion in dem Beispiel.
Besser spät als nie. Danke, im Artikel korrigiert. Das Ende des Satzes wurde entfernt
Direkt nach dem ersten Beispiel enthält der Artikel den Satz "Die Variable pstatus ist ein Zeiger auf ein Objekt, aber wir haben absichtlich "vergessen", das Objekt selbst mit dem new-Operator zu erzeugen und es als Parameter an die Funktion PrintStatus() zu übergeben ".
Ich glaube, es liegt ein Fehler vor:
Es scheint, dass das neue Listenelement prev und first hat, die auf das zweite Element verweisen, und das zweite Element erhält keinen Verweis auf das erste Element.Ja, das ist ein Tippfehler. Anstelle von
sollte
korrigiert werden.Ich verstehe immer noch nicht, über Zeiger und Referenzen in MQL5 und jetzt in MQL4. Was ist der Unterschied zwischen der Übergabe von Referenzen und Zeigern, außer dem zusätzlichen Code? In C++ gibt es einen Unterschied, aber was ist er hier? Wenn es nicht schwierig ist, schreiben Sie bitte ausführlichere Informationen.