类指针传染媒介

时间:2014-11-20 15:22:50

标签: c++ pointers vector

我知道之前有过几个类似的问题。但是没有一个得到广泛的认可,指针的向量对我来说仍然很混乱。

这是代码:
想象一下,我们有一个:

vector<member*> vector_member;
for (int i = 0; i < n; i++){ 
    member* mem = new member(i); //constructor
    mem->init(); //This function use a random number generator to give the member some randomness
   vector_member.push_back(mem);
}

执行此代码后,我发现vector_member [i]的所有随机数都是一样的!

任何专家都对此有任何想法?

1 个答案:

答案 0 :(得分:1)

我必须看到你的init方法,但我的猜测是你的随机函数正在使用种子值,比如当前时间(例如,自纪元以来的毫秒数)来初始化自己,以及你的代码执行速度非常快,以至于调用之间的时间没有变化,所以返回相同的随机数。