Деструктор объектов Objective-C++ C++

У меня есть класс Objective-C, одна из переменных которого является объектом C++ (большая часть моего кода написана на C++, но мне нужны некоторые классы ObjC для интеграции с библиотеками iOS). Гарантирует ли Objective-C++, что объект C++ будет правильно уничтожен при уничтожении объекта Objective-C?

Некоторый пример кода:

class MyCppClass {
    // ...
};

@interface MyObjCClass : NSObject {
    MyCppClass myCppObject; // is it ok to do it?
}

// ...

@end

person fbafelipe    schedule 30.07.2012    source источник
comment
Пока вы не включите этот заголовок в обычный файл .m, все будет в порядке.   -  person Richard J. Ross III    schedule 30.07.2012


Ответы (1)


да. После вызова метода -dealloc вызывается скрытый метод .cxx_destruct. Этот метод вызывает все деструкторы всех переменных экземпляра, у которых есть деструктор.

person chmeee    schedule 30.07.2012