Почему статический член тестового класса в c нарушает правила инкапсуляции?

#static #encapsulation

#статический #инкапсуляция

Вопрос:

В следующем коде я объявил тестовый класс и статический член того же типа (t1), но как его члены данных доступны с помощью . operator

 class Test{
    int a;
    static Test t1;
    public:
    explicit Test(int);
    explicit Test();
    static void set_test();
    void init();
    void print();
};
 
 Test::Test():a(t1.a){}
Test::Test(int value):a(value){}
Test Test::t1(1);
void Test::init(){
    a=t1.a;
}
void Test::print(){
    cout<<a;
}
 
 
int main()
{
    Test t;
    t.print();
    return 0;
}