Dies kann eine kurze & einfache Frage, aber ich habe nie eine befriedigende Antwort darauf:C++ main() in einem großen OOP Projekt
Welchen Code ist die Funktion main() in der Regel in einem bestehen aus großes C++ Projekt? Wäre es eine falsche Annahme zu denken, dass es normalerweise nur ein (umhüllendes) Klassenobjekt initialisiert und eine Funktion darin aufruft, Dinge abzustellen?
Warum ist main() nicht eine Methode an erster Stelle? Ist es rückwärtskompatibel mit C?
Der Grund, dass es keine Member-Funktion ist, dass Sie dann eine Möglichkeit benötigen, um anzugeben, zu welcher Klasse es eine Member-Funktion von ist. C++ hat nichts wie das Manifest von Java und keine Reflektion. –
von einer konzeptionellen Ebene benötigt jedes Programm einen Einstiegspunkt, im Falle von "klassischem" C++ ist dies innerhalb der ausführbaren Datei, die der Compiler erzeugt, wenn das Programm startet, gibt es keine Klasse, für die main eine Methode sein könnte. In interpretierten Sprachen wird die Runtime zuerst ausgeführt und richtet einen Kontext ein, in dem die Anwendung ausgeführt wird, bevor sie gestartet wird, sodass der Einstiegspunkt eine Methode/Mitglied einer zuvor eingerichteten Klasse ist, falls die Sprache/Laufzeit dies erlaubt/wünscht. – Mark
@Mark: was? Der Compiler ist dafür verantwortlich, Code zu senden, um verschiedene Dinge einschließlich statischer Member von Klassen vor der Ausführung von main() zu initialisieren. Insofern Klassen in C++ zur Laufzeit überhaupt existieren können, gibt es viele Klassen, bevor der Einstiegspunkt aufgerufen wird. Es könnte sogar viele Objekte geben. –