Я не получил предполагаемого результата здесь.
#include<iostream> using namespace std; class root{ protected: int value; public: void setvalue(int a){ value=a; } }; class first:public root{ public: void print(){ cout<<"I got the value-"<<value<<endl; } }; class second:public root{ public: print(){ cout<<"I got the value-"<<value<<" too"<<endl; } }; int main(){ root r; r.setvalue(44); first f; second s; f.print(); s.print(); return 0; }
Что я уже пробовал:
Я думаю, что выход должен быть
"Я получил значение 44
Я тоже получил значение 44"
Но вместо этого он дает мне странное число вместо 44.
Richard MacCutchan
Вам нужно позвонить setvalue
на других объектах они наследуют только переменную и метод определения от root
, а не содержимое объекта r
.