C++ c++;11静态功能成员变量
嗯,我被难倒了。我在处理静态成员变量和函数时总是有点困难,所以如果这个问题的答案真的很明显,我道歉。不过我不知道怎么了 在WSGrid.h中: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
#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