Cтраница 4
Указатель на объект производного класса может быть неявно преобразован в указатель на объект базового класса, так как объект производного класса является объектом базового. [46]
Указатель на объект производного класса может быть неявно преобразован в указатель на объект базового класса, потому что объект производного класса является объектом базового класса. [47]
Конструктор производного класса всегда вызывает конструктор своего базового класса, чтобы сначала создать и инициализировать элементы базового класса в объекте производного класса. [48]
![]() |
Определение абстрактного базового класса Shape ( часть 1 из 9. [49] |
В этом случае, если объект в иерархии уничтожен явным использованием операции delete, примененной к указателю базового класса на объект производного класса, то будет вызван деструктор соответствующего класса. Вспомним, что когда производный класс уничтожен, часть базового класса, содержащаяся в производном классе, также уничтожается. Деструктор базового класса автоматически выполняется после деструктора производного класса. [50]
В том случае, когда ожидается указатель на объект базового класса, вполне допустима и часто используется на практике передача указателя на объект производного класса. [51]
Если функция draw в базовом классе объявлена как virtual и если мы затем вызываем функцию draw через указатель базового класса, указывающий на объект производного класса ( например, shapePtr - draw ()), то программа будет динамически ( т.е. во время выполнения программы) выбирать соответствующую функцию draw производного класса. [52]
Присваивание объекта производного класса объекту соответствующего базового класса и затем попытка сослаться в этом новом объекте базового класса на элементы, имеющиеся только в объектах производного класса. [53]