Почему производный класс не может получить доступ к защищенному члену своего базового класса через указатель на базу?
Этокод:
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
член, используя указатель, указывающий наTestA
тип объекта (таким образом, экземплярTestA
).TestB
также происходит отTestA
Почему я не могу получить к нему доступ? Это доступно только "в" классе, где мне это нужно? Не снаружи, используя указатель / прямые объявления?