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对象。