Макрокоманда Объявления Класса
Файл заголовка для заказного класса может использовать ACRX_DECLARE_MEMBERS (CLASS_NAME) макрокоманда ObjectARX, чтобы объявить desc(), cast(), и isA() функции.
Эта макрокоманда используется в общем разделе объявления класса, следующим образом:
class myClass : public AcRxObject
{
public:
ACRX_DECLARE_MEMBERS(myClass);
...
};
Для AsdkPoly, следующая строка расширяется до одиночной длинной строки программы.
ACRX_DECLARE_MEMBERS (AsdkPoly);
Когда переформатировано к множественным строкам для ясности, строка напоминает это:
virtual AcRxClass* isA() const;
static AcRxClass* gpDesc;
static AcRxClass* desc();
static AsdkPoly* cast(const AcRxObject* inPtr)
{
return ((inPtr == 0) || ! inPtr->isKindOf(AsdkPoly::desc())) ? 0 : (AsdkPoly*)inPtr;
};
static void rxInit();
Статический rxInit () функция и статический gpDesc указатель, объявленный этой макрокомандой используется, чтобы осуществить isA (), desc (), и cast() функции.