【发布时间】:2012-08-17 20:17:48
【问题描述】:
我试图创建一个程序,该程序使用main() 函数参数通过命令行获取参数。作为一个(基本的)C++ 程序员(即使我非常了解 C 风格的指针和数组),我几乎从未使用过 char* 字符串和 C 数组。我花了一些时间来获取main() 参数并将其转换为std::string... 所以问自己:为什么在C++ 中main() 函数没有重载以采用std::vector<std::string> argv 而不是旧的char* argv[]?
对于“重载”,我指的是main() 函数如int main() 和int main(int argc, char *argv[]) 的共存,而不是程序员编写的普通函数的重载。
【问题讨论】:
-
将东西填充到字符串向量中非常简单,但从字符串向量创建 char* argv[] 则不然。
-
@PlasmaHH 是的。为什么编译器不能添加此重载所需的单个 ctor 调用?
-
@DavidRodríguez-dribeas 我知道
main()不能被用户超载。我的意思是语言上的“过载”。我们已经有两个标准版本的 main。 -
这是stackoverflow.com/questions/6408183/is-main-overloaded-in-c 的副本吗?恕我直言,这应该重新打开
-
“重复”只是询问 如果 main() 是否超载(不是)。这个问题很清楚事实,并询问原因。完全不重复,投票支持重新开放。
标签: c++ command-line-arguments main