Не работает код, что делать? c++
#include<iostream>
#include<cstdlib>
using namespace std;
class A {
int x;
public:
void setx(int a){
x=a;
}
int getx(){
return x;
}
};
class B: protected A {
int y;
public:
void sety(int b){
y=b;
}
void setx(int a){
A::setx(a);
}
int gety(){
return y;
}
};
class C: protected B {
int z;
public:
void setz(int c){
z=c;
}
int getz(){
return z;
}
};
int main(){
A a;
B b;
C c;
a.setx(1);
b.setx(2); b.sety(2);
c.setx(3); c.sety(3); c.setz(3);
cout<<a.getx()<<b.getx()<<c.getx()<<'\n';
return 0;
}
Хочу поработать с классами, но не работает почему-то код, что-то. наверное. пропустил.
Ответы (1 шт):
Автор решения: KoVadim
→ Ссылка
При protected наследовании сам класс имеет доступ к своему предку, а вот пользователи этого класса - нет. Поэтому, в коде main и нет доступа к setx. Измените на public и все заработает.