3

まあ、私は困惑しています。私は常に静的メンバー変数と関数で少し苦労してきたので、これに対する答えが本当に明らかである場合は、お詫び申し上げます。しかし、何が問題なのかわかりません。

WSGrid.h で:

#include <functional>

class WSGrid
{
public:
    //constructors...

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

    //private data...
};

WSGrid.cpp で:

#include <random>

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

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

私のmain.cppで:

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

int main( int argc, char* argv[] )
{
    std::cout << WSGrid::_randomChar() << std::endl;
    return 0;
}

コンパイルしようとすると ( g++ -std=c++11 -Wall -pedantic main.cpp)、「WSGrid::_randomChar への未定義の参照」が表示されます。

だから... 私には、私はすべてを正しくやっているように見えます。少なくとも私が知る限り、ここにある構文に従っています。しかし、どうやら何か問題があるようです。

4

1 に答える 1