Сообщество программистов Autodesk в СНГ
ADN Club => ObjectARX => Тема начата: 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.
Перевод понятен, смысл нет)
-
Это так называемый интеллектуальный указатель. Огромная польза его в том, что если программист забудет выполнить метод close() для этого объекта - этот метод будет вызван автоматически при выходе из "области видимости" переменной. Т.е. не позднее, чем в конце функции (или при выходе по return из любого места функции) объект будет закрыт.
Напоминаю, что не закрытие открытого для записи объекта/примитива в 99% случаев приводит к аварийному завершению AutoCAD.