Ich habe viele Fragen in Java gesehen, wo, wenn Leute eine statische Methode mit der Syntax des Aufrufs einer Instanzmethode durch ein Objekt aufgerufen haben und das Objekt tatsächlich eine Unterklasse des Variablentyps ist, fragen sich die Leute, warum es nicht Rufen Sie eine statische Methode desselben Namens in der Unterklasse auf.Die Tatsache, dass sie sie über ein Objekt aufrufen, lässt sie denken, dass es sich um eine Instanzmethode handelt, die überschrieben werden kann, und sie führt eine dynamische dynamische Nachschlagefunktion aus, die den Typ des Objekts verwendet.
Aber natürlich wird das Objekt nie im Aufruf verwendet - nur der Typ der Variablen wird zur Kompilierzeit verwendet, um zu entscheiden, welche statische Methode der Klasse es ist. Wenn Sie also ein Objekt dort platzieren, ist es völlig irreführend, weil es Leute denken lässt, dass es benutzt wird, wenn es nicht ist. Deshalb bevorzuge ich nur den Aufruf von statischen Methoden über den Klassennamen - es entspricht genau dem Aufruf durch eine Variable des Klassentyps; aber es sagt dir genau, was vor sich geht, ohne überflüssige irreführende Zusatzinformationen.
Ein Gesamtnit: aber C++ hat keine "Methoden". Es hat Funktionen. Nirgendwo im C++ - Standard spricht man von "Methoden". Methode ist ein allgemeiner OO-Term, der Funktionen in C++ abbildet. Was deine Frage betrifft: Es ist eine reine Stilsache, beide machen das gleiche. –
Fixed the nit ... –
LOL, Entschuldigung für eine wählerische b * stard. –