Где хранятся закрытые данные базового класса при обращении к ним через производный класс (C++)? Допустим есть базовый класс:class A { public: int geti(); void seti(int); private: int i; }; int A::geti() { return i; } void A::seti(int n) { i = n; } И есть производный от него класс:class B: public A { //содержимое В не важно }; Допустим в main() есть следующий код:B ob; ob.seti(10); cout<Вопрос: так как i - закрытый член базового класса, в производном классе его нет. Тогда куда записывается 10 в строке ob.seti(10)? Пример взят из книги Шилдта "Самоучитель С++", но ответа на свой вопрос я не нашел
Когда вы вызываете метод seti(10) для объекта ob класса B, в действительности вызывается метод seti(int n) из базового класса A, так как класс B унаследовал этот метод. При этом значение 10 присваивается закрытому члену i базового класса A. Таким образом, значение 10 хранится в члене i базового класса A, даже если обращение к нему происходит через объект производного класса B.
Когда вы вызываете метод seti(10) для объекта ob класса B, в действительности вызывается метод seti(int n) из базового класса A, так как класс B унаследовал этот метод. При этом значение 10 присваивается закрытому члену i базового класса A. Таким образом, значение 10 хранится в члене i базового класса A, даже если обращение к нему происходит через объект производного класса B.