static initialization confusion
        Posted  
        
            by Happy Mittal
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Happy Mittal
        
        
        
        Published on 2010-06-14T10:26:59Z
        Indexed on 
            2010/06/14
            10:32 UTC
        
        
        Read the original article
        Hit count: 239
        
I am getting very confused in some concepts in c++. For ex: I have following two files
//file1.cpp
class test
{
    static int s;
    public:
    test(){s++;}
};
static test t;
int test::s=5;
//file2.cpp
#include<iostream>
using namespace std;
class test
{
    static int s;
    public:
    test(){s++;}
    static int get()
    {
    return s;
    }
};
static test t;
int main()
{
    cout<<test::get()<<endl;
}
Now My question is :
1. How two files link successfully even if they have different class definitions?
2. Are the static member s of two classes related because I get output as 7.  
Please explain this concept of statics.
© Stack Overflow or respective owner