• ベストアンサー

メルセンヌツイスターが使えない

C++でメルセンヌツイスターのランダムクラスをstaticで作ろうとしたのですがクラスの中に変数を宣言しているにもかかわらず "private: static unsigned int * MyRando::mt" (?mt@MyRando@@0PAIA)" は未解決です。 というエラーが出ました。 このエラーはどうすれば消せるのでしょうか? ちなににstaticをつけない普通のクラスとして宣言すれば使えました。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

クラス内のstaticな変数は、そのクラスの全てのインスタンスで 共用する唯一の「実体」をコードしなければなりません。 一般にこの「実体」は*.cppにコードします。 (例) <A.h>---- class A{ static int st_Value; // 宣言 }; <A.cpp>--- #include "A.h" int A::st_Value; // 実体=インスタンス 提示のエラーは、このインスタンスがリンク時に 見つからなかったというものです。

-una-
質問者

お礼

回答ありがとうございます。 おかげで解決に至りました。ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A