比方说,我想生成过程中的具体ID:对于所有对象,lib中的静态值是否都是相同的值?
class TestLib
{
public:
static int n;
static int generate_id(){
srand (time(NULL));
if (n == 0)
n = rand() % 10 + 1;
return n;
};
};
我有库A和B,其中包括TESTLIB:
class TEST_A
{
public:
static void print() {
std::cout << "A" << TestLib::generate_id() << std::endl;
};
};
class TEST_B
{
public:
static void print() {
std::cout << "B" << TestLib::generate_id() << std::endl;
};
};
将我保证,任何单一的过程使用一个和B会有相同的ID?
如果我静态链接库,会发生这种变化吗?
我已经在linux-x86中用共享对象测试了这个,但是我不确定原则上这是多么安全。
无需初始化N到零,所有的全局(静态)变量被定义为0(INT),假(布尔),NULL(指针)。 – kovarex