ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
12 мая
26151 Топик полностью
blackbit (15.04.2005 13:02, просмотров: 1) ответил Сергей Борщ на Все равно не догоняю
Примеры в учебниках есть, хе хе.. А вообще, на что примеры-то? Как классы наследовать? >Методы доступа будут наследованием распространяться на >производный класс, но не на его члены, которые суть члены >структуры. Не совсем понял. Если класс B наследик класс A, то он наследует от него ВСЁ, что не защищено в А: и методы, и переменные, и внедренные объекты, и... "члены моего кружка, и кружки моего члена". Ему не нужно заново все это создавать. Он, класс B объявляет и создает только то, что нужнно ему и что нельзя позаимствовать у родителя. Короче, дети, как правило, паразитируют на родителях, дажеть здесь.. TMemBase->TMemInside->TMemExe TMemBase - базовый абстрактный класс. Будет содержать только "скелет": абстрактные виртуальные ф-ции, пусть ReadByte и WriteByte. ТМemInside, TMemEx его потомки. Они так же содержат виртуальные ReadByte и WriteByte, которые будет не перегружаться, а _замещаться_, в зависимости от того, на какой из потомков будет указывать в данный момент ptrMem: TMemBase * ptrMem; Это есть стержень. Передвигаем указатель на нужный тип памяти, реализуемый соответствующим классом TMemInside или TMemEx и вызываем эти самые ReadByte, WriteByte, они будут работать с памятью нужной нам. Потомок сам реализует обращение к памяти, а вот что внутри него снаружи видно не будет, да и не нужно. Получаем единообразие работы с различными типами памяти, что и требовалось в вводной (как я ее понял). Вот он какой, северный полиморфизм... Все остальные функции TMemInside и TMemEx делать виртуальными не нужно, а TMemEx сможет "за кулисами" пользоваться теми потрохами TMemInside, которые ему нужны.. "все лучшее - детям", етить.