首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Objective-C++中的析构函数

Objective-C++中的析构函数
EN

Stack Overflow用户
提问于 2010-06-29 04:11:19
回答 2查看 19.7K关注 0票数 16

我有一个objective-C++类,它包含一些诚实的C++对象指针。

当Obj-C++类被销毁时,它会立即调用dealloc吗?如果是这样,那么销毁C++类的最好方法是将

代码语言:javascript
复制
delete obj

在dealloc方法中?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-29 04:15:16

我认为当您说"Obj-C++类“时,您指的是碰巧包含一些C++类的Objective-C类。

Objective-C类在被销毁时不会调用dealloc;它们是通过向它们发送dealloc消息来销毁的。

如果你的init方法实例化了obj,那么,是的,在dealloc中调用delete obj

代码语言:javascript
复制
-(void)dealloc {
  delete obj;
  [super dealloc];
}
票数 31
EN

Stack Overflow用户

发布于 2010-06-29 04:28:13

作为Frank Shearar正确答案的补充,如果您使用的是OSX10.4或更高版本的SDK (您可能正在使用;尽管我不确定这里是否有iPhone运行时),您还可以包含Objective-C类的C++成员,即不使用指针。OSX SDK早期版本中的问题是C++成员的构造函数和析构函数不会被调用。但是,通过指定fobjc-call-cxx-cdtors编译器选项(在XCode中,它公开为设置GCC_OBJC_CALL_CXX_CDTORS),将调用ctor和dtor。另请参阅该页面下方的Apple docs

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3135782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档