c++ 不同cpp定义相同类,在vs下的表现

a.cpp

类1

class TESTSearch
{
public:

TESTSearch()
{
    Register();
}


void Register()
{
    FuncMain::Instance()->AddMethod(TestBinarySearch1);
    FuncMain::Instance()->AddMethod(TestBinarySearch2);
    FuncMain::Instance()->AddMethod(TestBfprt);
}

};

static TESTSearch a;

b.cpp

类2

class TESTSearch
{
public:

TESTSearch()
{
    Register1();
}


void Register1()
{
    FuncMain::Instance()->AddMethod(TestBinarySearch1);
    FuncMain::Instance()->AddMethod(TestBinarySearch2);
    FuncMain::Instance()->AddMethod(TestBfprt);
}

};

static TESTSearch a;

如上代码, 能正常编译通过。
执行时,实际上某个类创建两个static对象。

你可能感兴趣的:(c++)