ВУЗ:
Составители:
Рубрика:
30
/*Далее располагается собственно авторский код.
Любой метод класса должен иметь в заголовке
имя класса, отделенного от имени самого метода
двойным двоеточием. В Delphi это была точка.*/
// Здесь реализуются методы класса TSpriteList.
// Конструктор инициализирует поля класса
__fastcall TSpriteList::TSpriteList(TControlCanvas* const canvas)
{
if (canvas) //Условие оператора if всегда пишется в скобках.
/* Проверку наличия не нулевого указателя можно проводить,
используя просто сам указатель, как в коде.
Это равносильно записи условия в виде (canvas!=NULL) –
указатель canvas не равен NULL*/
{
// служебное слово this в C имеет смысл self в Delphi – указатель на вызывающий объект
// вызов члена объекта, если объект задан своим указателем, происходит оператором ->
// оператор присвоения в С имеет вид =, а для сравнения используется двойной знак ==
this->canvas=canvas;
clientRect=canvas->Control->ClientRect;
canvasCopyMode=canvas->CopyMode;
list=new TList(); // Так создается экземпляр объекта. Здесь TList() – конструктор.
} else
/*Служебное слово throw используется для создания исключительной ситуации.
После этого нормальный ход программы прерывается.
Управление передается на ближайший блок catch.*/
throw Exception("Канва не задана!");
}
// Деструктор очищает список от спрайтов, восстанавливает свойства канвы
// и убирает сам экземпляр списка list
__fastcall TSpriteList::~TSpriteList()
{
Clear();
canvas->CopyMode=canvasCopyMode;
delete list; // Так вызывается деструктор объекта.
}
// Возвращает элемент списка спрайтов, отвечающий слою aZ,
// как указатель на объект типа TSprite
TSprite* __fastcall TSpriteList::GetItems(int aZ)
{
// служебное слово return вызывает выход из метода и возвращение значения функции
// выражение (TSprite*) означает преобразование типа указателя, полученного после
// вызова свойства list->Items[aZ], в указатель на TSprite
return (TSprite*)list->Items[aZ];
}
// Добавляет в список объект типа TSprite и возвращает указатель на добавленный объект
TSprite* __fastcall TSpriteList::AddSprite(TSprite* const sprite)
Страницы
- « первая
- ‹ предыдущая
- …
- 28
- 29
- 30
- 31
- 32
- …
- следующая ›
- последняя »