Сравнительное объектно-ориентированное проектирование - 27 стр.

UptoLike

Составители: 

27
TControlCanvas «по значению», т.е. содержать в себе все поля объекта типа
TControlCanvas. В языке C описание объекта по значению приводит к тому,
что в месте описания происходит создание реального экземпляра объекта
вызывается его «конструктор по умолчанию» и все поля
инициализируются.
В языке C нет процедур, как в Delphi, - только функции. Те функции,
которые не возвращают значений, имеют тип
void. Они являются
аналогами процедур в Delphi.
В C++ Builder в описании всех методов классов участвует модификатор
__fastcall. Его смысл - обеспечить компиляцию в наиболее быстрый
способ вызова метода при выполнении кода.
В языке C даже, если функция не имеет параметров, в ее описании
должны стоять скобки как в
GetSpriteRect().
В отличие от Delphi транслятор с языка C различает прописные и
строчные буквы. Поэтому принято давать одинаковые имена полям и
соответствующим свойствам, но начинать имена полей со строчной
буквы, а свойствс прописной буквы. Сравните, к примеру, описания
поля
count и свойства Count.
Обратите внимание на синтаксис описания свойств в C++ Builder.
Конструктор в C++ отличается от других методов тем, что его имя
совпадает с именем класса и что он не возвращает никакой тип, даже
void.
Имя деструктора также совпадает с именем класса, но перед именем
дается знак отрицания ~. Как и констуктор, деструктор не возвращает
какой-либо тип. Кроме того, деструктор не должен иметь параметров.
Деструктор часто объявляется виртуальным. В этом случае деструкторы
всех наследников автоматически становятся виртуальными.
В C++ модификатор
virtual у виртуальных методов не заменяется у
наследников на
override, а остается virtual.
В реализации на C++ у метода
AddSprite есть только один параметр
ссылка на объект класса
TSprite. Поэтому при обращении к методу
AddSprite объект спрайта должен быть уже создан. В C++ нет возможности
вызвать конструктор объекта, тип класса которого является переменной,
как это делается в Delphi.
При описании заголовков метода в хэдере языка C можно не указывать
явно идентификаторы параметровдостаточно только типы. Так, в
заголовке метода
AddSprite указан только тип единственного параметра
TSprite* const. Модификатор const играет ту же роль, что и в Delphi –
параметр, объявленный как
const, - не меняет своего значения внутри
функции.