Сообщество программистов Autodesk в СНГ

ADN Club => ObjectARX => Тема начата: DimVer от 19-04-2022, 19:29:40

Название: AcDbObjectPointer
Отправлено: DimVer от 19-04-2022, 19:29:40
AcDbObjectPointer<AcDbAttributeDefinition>
Добрый день, подскажите пожалуйста смысл следующего кода: AcDbObjectPointer<AcDbAttributeDefinition>, AcDbObjectPointer<AcDbAttribute>

В официальном хелпе нашёл информацию:
template <class T_OBJECT>
class AcDbObjectPointer : public AcDbObjectPointerBase<T_OBJECT>;

This class allows you to access any AcDbObject-based object given its object ID.

Перевод понятен, смысл нет)


Название: Re: AcDbObjectPointer
Отправлено: Александр Ривилис от 19-04-2022, 22:52:29
Это так называемый интеллектуальный указатель. Огромная польза его в том, что если программист забудет выполнить метод close() для этого объекта - этот метод будет вызван автоматически при выходе из "области видимости" переменной. Т.е. не позднее, чем в конце функции (или при выходе по return из любого места функции) объект будет закрыт.
Напоминаю, что не закрытие открытого для записи объекта/примитива в 99% случаев приводит к аварийному завершению AutoCAD.