Fehler, Irrtümer, Fragen - Seite 1696
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
Erstens ist nicht klar, ob versucht wurde, die Methode als virtuell zu deklarieren oder nicht. Wenn es virtuell sein muss, dann schreiben Sie virtuell in der Basisklasse, nicht in der abgeleiteten Klasse (weil sonst Basiszeiger auf Basismethode gerissen werden, auch wenn Sie abgeleitete Klasse Instanz in sie setzen).
Wenn Sie eine Methode in einer abgeleiteten Klasse nicht überschreiben wollen, erwähnen Sie sie überhaupt nicht, und wenn doch, sollte sie mit einem Körper überschrieben werden.
Um schließlich die Methode vor der abgeleiteten Klasse zu verbergen, müssen Sie eine Zwischenklasse einführen, in der Sie die Methode in den privaten Bereich verschieben oder sie in der Basisklasse privat machen (aber warum ist sie dann virtuell?).
Hier ein Beispiel
Hier ein Beispiel
Dieses Beispiel ist ungefähr dasselbe wie das erste ;-). Mein Brief wurde geöffnet, aber Sie haben ihn nicht gelesen? Was wollen Sie erreichen, indem Sie die Methoden im Nachfahren neu deklarieren, aber nicht definieren? Um eine Basisimplementierung aufzurufen, ohne eine neue zu haben, müssen Sie sie nicht in der Nachkommenschaft deklarieren.
Ich möchte nur 10 geerbte Methoden plus Methoden, die in der Nachfolgeklasse erstellt wurden, sehen. 190 Methoden, die in keiner Weise mit der aktuellen Klasse in Verbindung stehen, brauche ich nicht.
Ich habe zum Beispiel eine Basisklasse, in der alle maximalen Eigenschaften von Formen, Breite, Höhe, Ecken, Radien, Farben und Flächen beschrieben sind.
Auf der Grundlage dieser Eigenschaftsmethoden erstelle ich eine abgeleitete Kreisklasse, die Methoden der übergeordneten Klasse, Radius, Farbe, Fläche usw. verwendet. Aber ich brauche hier keine Ecken und Breiten ...
Auf der Grundlage dieser Methoden erstelle ich eine abhängige Dreiecksklasse, die die Methoden der übergeordneten Klasse, Farbe, Fläche, Ecken usw., verwendet. Aber ich brauche hier keinen Radius ...
Wenn ich frage, warum, hat die übergeordnete Klasse eine Gruppe von Methoden, die für alle oder für eine Gruppe von Formen gemeinsam sind, wie z. B. Farbe, Stil Methode.
Ich möchte nur 10 geerbte Methoden plus Methoden, die in der Nachfolgeklasse erstellt wurden, sehen. 190 Methoden, die in keiner Weise mit der aktuellen Klasse in Verbindung stehen, brauche ich nicht.
Ich habe zum Beispiel eine Basisklasse, in der alle maximalen Eigenschaften von Formen, Breite, Höhe, Ecken, Radien, Farben und Flächen beschrieben sind.
Auf der Grundlage dieser Eigenschaftsmethoden erstelle ich eine abgeleitete Kreisklasse, die Methoden der übergeordneten Klasse, Radius, Farbe, Fläche usw. verwendet. Aber ich brauche hier keine Ecken und Breiten ...
Auf der Grundlage dieser Methoden erstelle ich eine abhängige Dreiecksklasse, die die Methoden der übergeordneten Klasse, Farbe, Fläche, Ecken usw., verwendet. Aber ich brauche hier keinen Radius ...
Als ich fragte, warum, hat die übergeordnete Klasse eine Gruppe von Methoden, die allen oder einer Gruppe von Formen gemeinsam ist, z. B. die Methode Farbe, Stil.
Ich verstehe nicht: Diese Frage - eine Frage oder eine Antwort? Normalerweise tun sie das - in der Basisklasse ist es üblich, und in den Nachkommen werden dann Besonderheiten hinzugefügt. Warum sollte es umgekehrt sein? Was ist der Zweck?
Aber selbst wenn Sie nicht tiefer gehen, habe ich bereits eine Option vorgeschlagen - einen Zwischenabkömmling einzufügen, in dem alle unnötigen Eigenschaften und Methoden in den privaten Teil verschoben werden.
Es gibt 200 Methoden in der Elternklasse, ich möchte nur 10 geerbte Methoden plus die in der Kindklasse erstellten sehen, ich brauche keine 190 weiteren Methoden, die nicht mit der aktuellen Klasse zusammenhängen.
Dazu müssen Sie die Vererbung als geschützt oder privat deklarieren und dann die benötigten Methoden außer Kraft setzen.
Dazu müssen Sie die Vererbung als geschützt oder privat deklarieren und dann die gewünschten Methoden außer Kraft setzen.
Ich verstehe nicht: Ist diese Frage eine Frage oder eine unvollständige Antwort? Normalerweise machen sie es so - in einer Basisklasse das Allgemeine, und dann in Nachkommen fügen sie Einzelheiten hinzu. Warum das Gegenteil tun? Was ist der Zweck?
Aber selbst wenn Sie nicht zu tief gehen, habe ich bereits eine Option vorgeschlagen - einen Zwischenabkömmling einzufügen, in dem alle unnötigen Eigenschaften und Methoden in den privaten Teil verschoben werden.
Ich danke Ihnen.
Alexey, Ihr Beispiel funktioniert nicht, in jedem Fall bekommt das Kind Elternmethoden, die nicht weggeworfen werden sollten.
Was passiert, wenn Sie den Kurznamen bei der Erstellung ändern?
Und jedes Mal wechseln?
Wenn der Indikator Indikatorpuffer enthält, ist die Selbstidentifizierung einfach, aber ohne Puffer sehe ich noch keine Lösung.
Woher kenne ich meinenINDICATOR_SHORTNAME? IndicatorGet*-Funktionen gibt es nicht!