Почему производный класс не может получить доступ к защищенному члену своего базового класса через указатель на базу?

Этокод:

class TestA
{
protected:
    int test=12;

public:
    TestA() {
        cout << "test a: " << test << endl;
    }
    ~TestA() {
    }
};

class TestB : public TestA
{   
public:
    TestB(TestA *testA) {
        cout << "test b: " << testA->test;
    }
    ~TestB() {
    }
};

int main ()
{
    TestA *pTestA=new TestA();
    TestB *pTestB=new TestB(pTestA);
}

Я пытаюсь получить доступ кprotected&nbsp;член, используя указатель, указывающий наTestA&nbsp;тип объекта (таким образом, экземплярTestA).TestB&nbsp;также происходит отTestA

Почему я не могу получить к нему доступ? Это доступно только "в" классе, где мне это нужно? Не снаружи, используя указатель / прямые объявления?