Może to być krótki & proste pytanie, ale nigdy nie znalazłem satysfakcjonującej odpowiedzi na to:C++ main() w dużej OOP projekt
Jaki kod jest główną funkcją() zazwyczaj składają się w sposób duży projekt C++? Czy błędnym założeniem byłoby myślenie, że zwykle jest to inicjowanie (zawijanie) obiektu klasy i wywoływanie w nim funkcji, aby wyłączyć te rzeczy?
Dlaczego metoda main() nie jest metodą w pierwszej kolejności? Czy ma zachować zgodność wsteczną z C?
Powód, dla którego nie jest funkcją członka, polega na tym, że będziesz potrzebował sposobu na określenie klasy, której jest członkiem. C++ nie ma niczego takiego jak manifest Javy i nie ma refleksji. –
z poziomu bardziej koncepcyjnego, każdy program potrzebuje punktu wejścia, w przypadku "klasycznego" C++ jest to plik wykonywalny, który kompilator tworzy, kiedy program się rozpoczyna nie istnieje klasa, która mogłaby być metodą. W językach interpretowanych środowisko wykonawcze wykonuje się najpierw i ustawia kontekst, w którym aplikacja ma się uruchamiać przed jej uruchomieniem, więc punkt wejścia będący metodą/członkiem jakiejś uprzednio ustawionej klasy jest możliwy, jeśli język/środowisko wykonawcze pozwoli/zapragnie. – Mark
@ Mark: co? Kompilator jest odpowiedzialny za wysyłanie kodu w celu inicjowania różnych rzeczy, w tym statycznych członków klas, przed uruchomieniem funkcji main(). Do tego stopnia, że klasy mogą istnieć w środowisku wykonawczym w C++, istnieje wiele klas istniejących przed wywołaniem punktu wejścia. Może nawet istnieć wiele obiektów. –