【问题标题】:static variable requires initialization before argv parameter is processed by main静态变量需要在 main 处理 argv 参数之前进行初始化
【发布时间】:2017-12-11 15:24:28
【问题描述】:

我有一个在 main 之前初始化的静态变量。 这个静态变量是根据argv和argc初始化的。

然而,在静态变量实例化之后,主函数被启动,所以 argv 和 argc 还不可用。

我该怎么做?为了初始化静态变量,我如何知道标志值是什么?

【问题讨论】:

  • 没错。你有问题吗?
  • 所以听起来你必须从 main 中实际初始化你的静态变量。这样做,例如在你的对象上创建一个成员函数,你可以调用它来传递 argc 和 argv,从 main 调用该函数。
  • 因为 static 类成员只是豪华的 static 对象,这实际上是 Can I initialize a static const member at run-time in C++? 的副本

标签: c++ c++11 visual-c++


【解决方案1】:

[...]before argv parameter is processed by main
This static variable is initialized based on argv and argc.

嗯...问题出在哪里?只需在实际处理数据之前对其进行初始化即可。

static int Count = 0;

int main(int argv, char **args)
{
    Count = argv; //Init
    //Process
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多