Почему закрытая функция-член подкласса может вызываться из родительского класса?

Я ожидаю, что он ниже кода, чтобы выдать ошибку, но Компилирует нормально

class B;

template<typename T>
class A
{
private:
A()
{
T b;
b.print();
}

void print()
{

}
};

class B: public A<B>
{

};

Как A способный получить доступ к закрытым членам, конструктору A() а также print() из B?

-1

Решение

Попробуйте создать новый экземпляр класса B. Он скомпилирует ошибку.

B b;

3

Другие решения


По вопросам рекламы [email protected]