[an error occurred while processing this directive]
|
В отличие от Delphi в C++ нет понятия ссылки на класс (class of) как в Delphi. В Delphi ссылка на класс - это по сути указатель на vmt. В C++ указатель на VMT всегда скрыт и устанавливается при создании экземпляра класса в момент вызова конструктора.
В делфи конструктор - это просто частный случай классового метода (class function) который вызывается не для экземпляра класса, а для типа или ссылка на класс.
Другие важные отличия:
В C++ конструкторы вызываются неявно. Поэтому у класса не может быть нескольких конструкторов с одинаковыми типами параметров.
Конструкторы базовых классов в С++ также вызываются автоматически, в отличие от делфи, где они вызываются при необходимости вручную. В связи с этим, если из конструктора базового класса вызывается некоторый виртуальный метод и он перекрыт в новом классе, при создании нового класса вызовется конструктор базового класса и он вызовет старую версию метода.
E-mail: info@telesys.ru