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
Irgendwie ist die Frage , ob Multi-Purposing die Verarbeitungsgeschwindigkeit des CPU-Codes beeinflusst oder nicht, völlig unbeachtet geblieben(2011.04.04 21:58).
Wenn die Frage falsch, dumm usw. erscheint. - dann schreiben Sie das.
Die Frage , ob sich die Mehrfachverwendung auf die Codeverarbeitungsgeschwindigkeit des Prozessors auswirkt oder nicht(2011.04.04 21:58), bleibt irgendwie völlig unbeachtet.
Wenn die Frage falsch, dumm usw. erscheint. - schreiben Sie es einfach so.
Die Frage ist völlig logisch, die Antwort lautet: Nein, das ist nicht der Fall.
Ich hab's! Nun, Sie haben mich sehr ermutigt! Ich werde jetzt die Freude am Stempeln von verschachtelten Methoden verdoppeln :)
Urain, danke für das Beispiel! Auch wenn Sie keine Programmiererfahrung haben, ist es manchmal schwer zu erraten, wie Sie den korrekten Code überprüfen und schreiben sollen. Und hier ist alles klar und verständlich.
Frage. Kann sich eine Instanz einer untergeordneten Klasse selbst löschen? Mit anderen Worten: Wird ein solches Konstrukt funktionieren?
Der Compiler beschwert sich nicht über dieses Konstrukt.Frage. Kann sich eine Instanz einer untergeordneten Klasse selbst löschen? Mit anderen Worten: Wird diese Konstruktion funktionieren?
Der Compiler beschwert sich nicht über dieses Konstrukt.Wenn ich es richtig verstehe, ich mag keine Zeiger (und ich benutze sie nicht oft, vor allem in MQL5), sollte das Kind wie folgt aussehen
Daher würde die Anwendung wie folgt aussehen
PS
Ist es ein Fehler (oder eine Eigenschaft des Compilers), dass der Compiler dies übersehen hat?
Natürlich können wir davon ausgehen, dass der Nachkomme die von uns benötigte Klasse übergeben hat, aber die Strukturen und Funktionen der beiden Klassen können sehr unterschiedlich sein. Und was passiert dann?
C_A *pointer=new C_B;
Und wenn ich den ursprünglichen Code so verwende, tritt überhaupt ein Speicherleck auf, obwohl alle Compiler-Prüfungen bestanden wurden (und er hat nicht einmal mögliche Probleme erwähnt)
Hier ist das Ergebnis (ich verstehe, dass das Zeigerobjekt wegen des Speicherlecks nicht korrekt gelöscht wird):
Wenn ich es richtig verstehe, ich mag keine Zeiger (und ich benutze sie nicht oft, vor allem in MQL5), dann sollte der Nachkomme wie folgt aussehen
C_A *pointer=new C_B;
Ich habe diese Idee von Tetris übernommen, und sie hat sich für mich bewährt. Natürlich wäre es nicht richtig, diese Linie direkt zu verwenden, aber sie eignet sich sehr gut für ähnliche Zwecke, wie sie in Tetris gelöst werden.Die Frage , ob sich die Mehrfachnutzung auf die Codeverarbeitungsgeschwindigkeit des Prozessors auswirkt oder nicht(2011.04.04 21:58), bleibt dabei völlig unbeachtet.
Wenn die Frage falsch, dumm usw. erscheint. - schreiben Sie es einfach.
Die Antwort auf die Logik - je einfacher und logischer die Primitive sind, desto effizienter wird der Optimierer sein.
Die Hauptsache ist, dass man es nicht übertreibt :)
Der Skriptcode wurde geringfügig geändert:
Ausgänge
Sehen Sie. Ich habe die Methode void Del(C_A *p) mit dem Modifikator public in der übergeordneten Klasse deklariert. Die Kindklasse hat diese Methode also vollständig geerbt. Ich muss also nicht dieselbe Methode in der untergeordneten Klasse erneut deklarieren. Was diese Idee betrifft, so habe ich sie von Tetris übernommen, und sie hat bei mir sehr gut funktioniert. Natürlich wäre es nicht richtig, diese Zeichenkette direkt zu verwenden, aber sie eignet sich sehr gut für ähnliche Zwecke, wie sie in Tetris gelöst werden.
Selbst wenn man davon ausgeht, dass void Del(C_A *p) im Vorgänger ausreicht, um alle Zeiger der Nachkommen zu löschen, sehe ich keinen Sinn in der Verwendung von
C_A *pointer=new C_B;
PS
Die einzige Stelle, an der ich mir die Notwendigkeit eines solchen Ansatzes vorstellen kann, ist die Erstellung eines Arrays verschiedener Objekte, die von derselben Klasse abstammen (oder die Übergabe eines Parameters vom Typ "Basisklasse" an eine Funktion oder Prozedur).