Die Suche funktioniert nicht. Vielleicht wiederhole ich mich, aber die Frage ist: Kann sich ein Klassenobjekt selbst zerstören? D.h. zuerst erhalten wir einen Verweis des Objekts auf sich selbst in der Klasse Objekt mit dem reservierten Wort this, dann wenden wir den Löschoperator auf den entsprechenden Objektdeskriptor (Zeiger) an.
Etwa so:
Oder ist es besser/vorzuziehen, ein Objekt "extern" statt "intern" zu löschen?
Ich habe mich auch über diese Frage gewundert. Ich bin zu folgendem Schluss gekommen: Das Objekt kann sich selbst (schmerzlos) löschen, aber es muss beachtet werden, dass die Objektdaten (Variablen) danach nicht mehr existieren, also keine Aufrufe an sie. Aber imho ist dies ein schmutziger Weg, besser von außen. Und wenn sich das Objekt selbst löscht, kann es nur in neu erstellt werden.
220Volt: Ich habe mich auch über dieses Thema gewundert. Die Schlussfolgerung ist die folgende: Das Objekt kann sich selbst (schmerzlos) löschen, aber wir müssen bedenken, dass die Objektdaten (Variablen) danach nicht mehr existieren, also keine Aufrufe an sie. Aber imho ist das ein unschöner Weg, besser draußen.
Ja, ich benutze es jetzt seit einem Jahr :) Sehr praktisch, wenn das Objekt nicht mehr benötigt wird. Ich verstehe nicht, warum Sie das als "schmutzige" Methode betrachten?
Vielleicht sollten Sie zunächst die Dokumentation der Sprache lesen, mit der Sie arbeiten möchten, und sich die Definitionen ansehen, die für die Zwecke dieser Programmiersprache verwendet werden.
class CCC
{
public:
datetime start; //Сохраняем время создания объекта класса ССС
CCC(void) : start(TimeCurrent()) {}; //Функция TimeCurrent() указана без символа "точка с запятой"
~CCC(void) {};
}
voidOnTick()
{
CCC ccc;
}
Das liegt daran, dass das ; in Zeile 7 fehlt, während es in den Zeilen 6 und 5 nicht benötigt wird.
Das liegt daran, dass das ; in Zeile 7 fehlt, während es in den Zeilen 6 und 5 nicht benötigt wird.
Seltsam, alles kompiliert in meinem Code auch nach Ihren zusätzlichen Zeilen mit OnTick(). Nur nach der Deklaration der CCC-Klasse müssen Sie ein Semikolon setzen. Wie Sie geschrieben haben, - müssen Sie in der 7. Zeile ein Semikolon setzen.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Es scheint nicht zu kompilieren.
Die Suche funktioniert nicht. Vielleicht wiederhole ich mich, aber die Frage ist: Kann sich ein Klassenobjekt selbst zerstören? D.h. zuerst erhalten wir einen Verweis des Objekts auf sich selbst in der Klasse Objekt mit dem reservierten Wort this, dann wenden wir den Löschoperator auf den entsprechenden Objektdeskriptor (Zeiger) an.
Etwa so:
Oder ist es besser/vorzuziehen, ein Objekt "extern" statt "intern" zu löschen?
Ich habe mich auch über dieses Thema gewundert. Die Schlussfolgerung ist die folgende: Das Objekt kann sich selbst (schmerzlos) löschen, aber wir müssen bedenken, dass die Objektdaten (Variablen) danach nicht mehr existieren, also keine Aufrufe an sie. Aber imho ist das ein unschöner Weg, besser draußen.
Vielleicht sollten Sie zunächst die Dokumentation der Sprache lesen, mit der Sie arbeiten möchten, und sich die Definitionen ansehen, die für die Zwecke dieser Programmiersprache verwendet werden.
Hochachtungsvoll.
Sie denken in die richtige Richtung.
Dieser Code lässt sich nicht kompilieren
Das liegt daran, dass das ; in Zeile 7 fehlt, während es in den Zeilen 6 und 5 nicht benötigt wird.
Sie denken in die richtige Richtung.
Dieser Code lässt sich nicht kompilieren
Das liegt daran, dass das ; in Zeile 7 fehlt, während es in den Zeilen 6 und 5 nicht benötigt wird.
Es scheint nicht zu kompilieren.
Es kompiliert (na ja, ich bin nicht wählerisch bei Semikolons ;-) ).
Der Fragesteller hat also genau das Problem mit ihnen.
Im Allgemeinen sind es solche Kleinigkeiten...
Dieser Code lässt sich nicht kompilieren
Das liegt daran, dass das ; in Zeile 7 fehlt, während es in den Zeilen 6 und 5 nicht benötigt wird.