Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 静态方法中的静态变量_C++_Class_Methods_Static - Fatal编程技术网

C++ 静态方法中的静态变量

C++ 静态方法中的静态变量,c++,class,methods,static,C++,Class,Methods,Static,我想创建一个共享库。 我有一个充满静态方法的类。您知道可以在静态方法中调用静态变量,所以我也创建了静态变量 class TryClass{ public: static void method0(string s); static void method1(); static void method2(); private: static string name; }; method1和method2需要共享字符串名称,在

我想创建一个共享库。 我有一个充满静态方法的类。您知道可以在静态方法中调用静态变量,所以我也创建了静态变量

class TryClass{
    public:
       static void method0(string s);
       static void method1();
       static void method2();
    private:
       static string name;
};
method1
method2
需要共享字符串名称,在
method0
中设置。问题是,我应该在类之外(在源文件中)初始化字符串名称,方法如下:

string TryClass::name= "filename";
但是我需要在
method0
方法中初始化它。
有什么方法可以做到这一点吗?

首先,请更正您的代码,并在课堂上试用

static void method0(string s)
{
     TryClass::name = "hello";
}

因此,您可以轻松地在
method1
method2
中共享字符串名称

不清楚是什么问题。您必须在cpp中初始化它,但是
method0
可以为它指定一个新值。为什么您不能在运行
method0
时丢弃它已初始化的内容?上面的内容不编译,您缺少返回类型。顺便说一句,您的代码有语法错误,为什么您的类只有静态方法?(闻起来好像你在试图模仿java)修复了这个问题,也许是
void
返回类型而不是
string