Ésta puede ser una & sencilla pregunta corta, pero nunca he encontrado una respuesta satisfactoria a la misma:C++ main() en un gran POO proyecto
¿Qué código que hace la función main() por lo general consisten en una gran proyecto de C++? ¿Sería una suposición incorrecta pensar que generalmente se está inicializando un objeto de clase (envoltura) y llamando a una función dentro de él para que se desactive?
¿Por qué main() no es un método en primer lugar? ¿Es para preservar la compatibilidad hacia atrás con C?
La razón por la cual no es una función de miembro es que entonces necesitaría una forma de especificar de qué clase es una función miembro. C++ no tiene nada que ver con el manifiesto de Java y sin reflexión. –
desde un nivel más conceptual, cada programa necesita un punto de entrada, en el caso de C++ "clásico" esto está dentro del ejecutable que produce el compilador, cuando el programa comienza no existe una clase en la que pueda ser un método principal. En los lenguajes interpretados, el tiempo de ejecución se ejecuta primero y configura un contexto para que la aplicación se ejecute antes de que comience, por lo que el punto de entrada es un método/miembro de alguna clase previamente configurada si el idioma/tiempo de ejecución lo permite/desea. – Mark
@Mark: ¿qué? El compilador es responsable de emitir código para inicializar varias cosas, incluidos los miembros estáticos de las clases, antes de que se ejecute main(). En la medida en que se puede decir que las clases existen en tiempo de ejecución en C++, existen muchas clases antes de que se llame al punto de entrada. Incluso podría haber muchos objetos en existencia también. –