к свойствам родительского класса? приложение создает 2 экземпляра в куче (дочерний -> родительский) и сама расставляет его свойства или как?
Под капотом в первом приближении у тебя сидит большая структура, адресом который и есть твой экземпляр. И когда надо пойти в его свойсто, то к ссылке прибавляют относительно смещение поля и идут туда за данными.
Эм... Кто тебе мешает всех родителей всегда поставить в начало структуры, а всех детей после родителей. Вырастет только размер структуры и смещение все-равно всегда будет известно
нене, я про другое, про само расположение обьектов в куче. В том плане как при доступе к полиморфному методу или свойству, какой метод / свойство на самом деле применяется, определяется только во время выполнения. Под капотом, в основном, правильный метод лежит и он определяется путем доступа к таблице виртуальных методов. Вот и я имею ввиду то, что для наследования такая же таблица (иного названия конечно же ) определенна в куче?
Если мы говорим про поля, то нет конечно. приват, протектед и паблик только управляют областью видимости. Виртуальные поля - это что-то новое. Вроде есть динамик поля, но тут я не помню просто... Не пишу на шарпах с нового года. Так вот... Все поля объекта всегда сидят в одной структуре, на которую указывает ссылка.
Обсуждают сегодня