c.h
class C{
static string s;
}
c.cpp
string C::s=D::staticMethod();
d.h
class D{
static string s;
static string staticMethod();
}
d.cpp
string D::s("some string");
string D::staticMethod(){
return s; (***)
}
这不起作用,它停在( * ),因为D :: s尚未初始化。有没有办法在c.cpp之前编译d.cpp?
答案 0 :(得分:2)
此恕我直言的最佳参考:
答案 1 :(得分:0)
简而言之,没有。如果您确实需要这种行为,请查看Singleton模式。但是也要仔细考虑你的应用程序中是否需要这种耦合。