ИСП, КР1 (Object Pascal)
.docxТЕСТ №1. ООП НА ЯЗЫКЕ OBJECT PASCAL
- 
Может ли класс содержать несколько конструкторов?
 
Может.
- 
RTTI существует у всех классов или только у тех классов, которые имеют виртуальные методы?
 
У всех классов.
- 
Если экземплярный метод не работает с полями объекта, передается ли в метод параметр self?
 
Передается во все методы.
- 
В классе объявлено два поля типа byte, три свойства типа byte и два метода. Сколько байт в динамической памяти будут занимать объект класса?
 
InstanceSize объекта такого класса равен 8.
- 
Можно ли в качестве параметра конструктора класса TC передать объект класса TC?
 
Можно.
- 
Может ли класс содержать несколько свойств-массивов?
 
Может.
- 
Указатель на VMT размещается в динамической памяти перед полями объекта или после полей?
 
Перед полями объекта.
- 
Может ли тип индекса свойства-массива быть классом?
 
Да.
- 
Можно ли объявить конструктор в секции protected?
 
Да.
- 
Можно ли объявить свойство в секции private?
 
Да.
- 
Можно ли перекрыть виртуальный метод, изменив его имя?
 
Нет.
- 
Можно ли, используя переменную типа метакласс, получить доступ к полям объекта?
 
Такой возможности нет, значением переменной типа метакласс фактически является указатель на VMT соответствующего класса.
- 
При вызове деструктора используется имя класса или имя объекта?
 
Используется имя объекта, например:
Man := TPerson.Create;
Man.Destroy;
- 
Зависит ли размер переменной типа «указатель на метод» от количества параметров метода?
 
Нет, она занимает в памяти 8 байт и хранит одновременно ссылку на объект и адрес его метода.
