Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.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++;11静态功能成员变量_C++_C++11_Static - Fatal编程技术网

C++ c++;11静态功能成员变量

C++ c++;11静态功能成员变量,c++,c++11,static,C++,C++11,Static,嗯,我被难倒了。我在处理静态成员变量和函数时总是有点困难,所以如果这个问题的答案真的很明显,我道歉。不过我不知道怎么了 在WSGrid.h中: #include <functional> class WSGrid { public: //constructors... static const std::function< char( void ) > _randomChar; //private data... }; #包括 类WSGri

嗯,我被难倒了。我在处理静态成员变量和函数时总是有点困难,所以如果这个问题的答案真的很明显,我道歉。不过我不知道怎么了

在WSGrid.h中:

#include <functional>

class WSGrid
{
public:
    //constructors...

    static const std::function< char( void ) > _randomChar;

    //private data...
};
#包括
类WSGrid
{
公众:
//构造器。。。
静态常量std::函数\u randomChar;
//私人数据。。。
};
在WSGrid.cpp中:

#include <random>

std::default_random_engine generator;
std::uniform_int_distribution< char > distribution;

const WSGrid::_randomChar = std::bind( distribution, generator );
#包括
std::默认随机引擎生成器;
标准:均匀分布分布;
const WSGrid::_randomChar=std::bind(分布,生成器);
在my main.cpp中:

#include "WSGrid.h"
#include <iostream>

int main( int argc, char* argv[] )
{
    std::cout << WSGrid::_randomChar() << std::endl;
    return 0;
}
#包括“WSGrid.h”
#包括
int main(int argc,char*argv[])
{

std::cout您需要正确定义
\u randomChar

更新:

const WSGrid::_randomChar = std::bind( distribution, generator );
致:


好吧。我认为这可能很愚蠢。非常感谢。我会在期限到期时将你的答案标记为正确。
统一内部分布
不能与
char
一起使用,请参见ISO[rand.req.genl]奇怪的是,它工作得非常完美。
const std::function<char(void)> WSGrid::_randomChar = std::bind(distribution, generator);
g++ -std=c++11 -Wall -pedantic -c WSGrid.cpp -o WSGrid.o
g++ -std=c++11 -Wall -pedantic main.cpp WSGrid.o