All static members of the same class, yes. You normally don't spread the definition of class members all over the place anyway so it shouldn't be hard to follow.
Exception is if you have another class Bar with a static member s3 that needs s1 or s2 to be initialized. Then you have to define s3 in the same file as s1 and s2 but I find that bad design. You shouldn't really have to do that.
Functions are not initialized so only thing that can go wrong is if func() is called before s2 has been initialized which can only happen if func() is called before main() is called. This is true for any kind of function.