由于C++允许函数重载,我们能否重载main()
函数?
例如:
int main(const std::string &)
{
return 0;
}
int main(int argc, char *argv[])
{
return main("calling overloaded main");
}
gcc-4.3.4
编译不了这个程序,并出现以下错误:(请查看ideone)。
prog.cpp:4:错误:‘int main(const std::string&)’的第一个参数应该是‘int’
prog.cpp:4:错误:‘int main(const std::string&)’仅接受零或两个参数
prog.cpp:在函数‘int main(int, char**)’中:
prog.cpp:8:错误:C函数声明‘int main(int,char **)’与先前的声明‘int main(const std::string&)’冲突
prog.cpp:在函数‘int main(int,char **)’中:
prog.cpp:10:错误:从‘const char*’到‘int’的转换无效
prog.cpp:8:错误:函数‘int main(int,char **)’的参数过少
prog.cpp:10:错误:在文件的此处
因此,我想知道C++标准是否明确禁止重载main
函数?如果是,哪条语句?
extern char** environ
变量。 - NicholasM