複数のクラスで同じインスタンスを使用する
複数のクラスで共通のインスタンスを使用する方法
特にメルセンヌツイスターを使用している時によく使うので、メルセンヌツイスターを例に以下にコードを残す。
メイン関数とクラス(Class1)で共通のインスタンスを使用する例。
main.cpp
#include <iostream> #include "MersenneTwister.h" #include "Class1.h" using namespace std; int main() { CMersenneTwister mt; mt.init_genrand(10); Class1 c; c.SetMT(&mt); c.RandTest(); return 0; }
Class1.h
#pragma once #include "MersenneTwister.h" class Class1 { private: CMersenneTwister *mt; public: void SetMT(CMersenneTwister* _mt) { mt = _mt; }; void RandTest() { double rand = mt->genrand_real1(); cout << "rand = " << rand << endl; } };
今回の環境下では
rand = 0.771321
と表示された。