两个主要功能

Pra*_*rav 6 c++ program-entry-point

我们可以main()在C++程序中有两个函数吗?

sth*_*sth 19

该标准在3.6.1中明确说明:

程序应包含一个名为main的全局函数,它是程序的指定开始.[...] 此功能不应过载.

因此,main程序中的全局范围中只能有一个函数.同样调用的其他范围中的函数main不受此影响,可以有任意数量的函数.


Ale*_*lli 11

只有一个函数可以在main任何名称空间之外命名,就像任何其他名称一样.如果你有命名空间foobar(等)你可以很好地拥有名为foo::main,bar::main等等的函数,但从系统的角度来看它们不会被视为任何特殊的东西(只有在main任何命名空间之外命名的函数被特别处理,作为该计划的切入点).当然,main你可以很好地称呼各种各样的foo::main,bar::main等等.


Pra*_*rav 8

是! 为什么不?

请考虑以下代码:

 namespace ps
 {
     int main(){return 0;}
 }

 int main()
 {
     ps::main();
 }
Run Code Online (Sandbox Code Playgroud)

::main()会在执行过程中被调用.