Тема: open/close AcDbObject и работа с памятью.

Есть класс, наследованный  от AcDbObject. В этом классе есть указатели
на строки (char *) и на массивы (AcArray *). Строки получены
через acutNewString, массив - через new AcArray. Я открываю объект этого класса, возвращаю эти указатели, потом закрываю этот объект
и работаю с этими указателями. Правильно ли я делаю? Могут ли после закрытия объекта эти указатели указывать не туда? И ещё, я правильно понял - после close вообще нельзя к объекту обращаться, он может быть перемещён в памяти?

Re: open/close AcDbObject и работа с памятью.

Если возвращаются копии этих полей, то все должно быть нормально (разумеется не зыбывая удалять их после использования). Так делают азличные AcDbEntity для char*.

После close нельзя обращаться по AcDbObject*. Но сами поля не должны меняться после закрытия, т.е. получив поле-указатель можно использовать его и после закрытия объекта.
Но ведь после закрытия объекта его можно удалить, т.е. эти указатели могут потерять смысл.

Может быть стоит поместить все преобразования для этих char* и AcArray* в методы класса, т.е. добавить AcArray* getSomething(), который возвращает указатель на копию поля и setSomething(AcArray* Op), который замещает старый указатель.

Re: open/close AcDbObject и работа с памятью.

угу, спасибо.
так и сделал - возвращаются копии объектов, а не указатели,
а изменения производятся через методы.