Теоретически это возможно, но вы не уверены в порядке инициализации глобальных объектов, поэтому у вас нет уверенности в том, какой объект будет инициализирован последним, и, следовательно, у вас будут проблемы с запуском «main» внутри глобального объекта, который может не иметь надлежащего состояния настройки программы до вызова ее конструктора. Кроме того, вы не сможете приостановить выполнение конструктора вашего «основного» объекта, чтобы дождаться появления надлежащего начального состояния в случае возникновения такого сценария.
Кроме того, поскольку среда выполнения ОС будет вызывать вашу фактическую функцию main()
, чтобы фактически «запустить» вашу программу независимо от наличия «основного» глобального объекта или нет, вам нужно будет вернуть значение из 'main () `, чтобы среда выполнения ОС могла определить состояние выхода вашей программы.