Учитывая следующий код:Почему объект недоступен, если он защищен доступом?
class A {
public:
int y;
A(){
int x = 10;
cout << x << endl;
}
} a;
Там нет никаких проблем. Объявлен объект, a
. Но, со следующим кодом:
class A {
public:
int y;
protected:
A(){
int x = 10;
cout << x << endl;
}
} a;
Создание объекта a
не представляется возможным, а код не будет компилироваться. Может ли кто-нибудь объяснить мне, почему к нему нельзя получить доступ, несмотря на защищенный модификатор доступа? Что мне не хватает? Спасибо.
«объект находится внутри класса» - нет, это не так, оно находится в пространстве имен вне класса и поэтому не может получить доступ к защищенному конструктору. –