У меня есть класс матери и производный дочерний класс. Я пытаюсь получить доступ к защищенной переменной «familystuff» в производном классе. Оба способа, к которым я пытаюсь получить доступ, не работают. Когда я скомпилировать и запустить его, я получаю следующий результат:Доступ к защищенной переменной в производном классе C++
Familie 32768
FOO 32767
class Mother
{
private:
int motherstuff;
protected:
int familystuff;
public:
int everyonesstuff;
void SetStuff(int a, int b, int c){
motherstuff = a;
familystuff = b;
everyonesstuff = c;
}
void Show(){
cout << motherstuff << " " << familystuff << " " <<everyonesstuff << endl;
}
};
class Daughter : public Mother
{
public:
Daughter()
{
a = familystuff + 1;
}
void Show(){
cout << "Familie " << a << endl;
}
int foo() { return familystuff;}
private:
int a;
};
int main(){
Mother myMum;
myMum.SetStuff(5,3,1);
myMum.Show();
cout << myMum.everyonesstuff << endl;
Daughter myDaughter;
myDaughter.Show();
cout << "FOO " << myDaughter.foo() << endl;
}
«myDaughter» - это совершенно другой объект, он не волшебным образом обменивается памятью с помощью myMum – melak47
Вы не даете 'myDaughter' никаких значений, чтобы он содержал случайный затвор. – Galik
Итак, подумайте на секунду - как бы вы объявили 2 или 3 объекта Матери, а затем привяжите их к Дочери? – PaulMcKenzie