Я получаю ошибку компиляции, о которой я немного смущен. Это на VS2003.
ошибка C2248: "A:: y": не может получить доступ к защищенному члену, объявленному в классе "A"
class A
{
public:
A() : x(0), y(0) {}
protected:
int x;
int y;
};
class B : public A
{
public:
B() : A(), z(0) {}
B(const A& item) : A(), z(1) { x = item.y;}
private:
int z;
};
Проблема заключается в x = item.y;
Доступ определяется как защищенный. Почему конструктор класса B не имеет доступа к A:: y?