在OBC-C中有类似于C++的构造函数,析构函数么?该如何处理

在OBC-C中有类似于C++的构造函数,析构函数么?
首先有一个类

@interface ClsDemo1 : NSObject
{
NSString* str;
}
......
@end

在Object-C中貌似没有找到类似于C++ (构造函数/析构函数)的东西
那么....NSString* str 应该在哪儿申请内存,在哪儿释放呢???
抱歉,才从C++的转过来,还没适应.
尝试过
-(ClsDemo1*)init
{
if(self=[super init])
{
str=[[NSString alloc] init];
}
return self;
}

-(void)release
{
[str release];
[super release];
}
呃,只是凭感觉写的,总觉得哪儿有什么不对.
求指导.


------解决方案--------------------
C/C++ code

-(void)release
{
[str release];
[super release];
}

------解决方案--------------------
不会的, copy会重新分配一块内存
------解决方案--------------------
不太记得了。。。

我在XOCODE编译的时候,如果类中有成员变量是 string,一般都不为它开辟空间。。。。
-dealloc{}中,也不会去释放掉它。感觉它会在内存释放池里释放掉。系统自带的帮我autorelease掉了

如果使用临时变量 或者一定把成员变量 【nsstring alloc】,那么就要去release掉

还有,[nsobject COPY]会开辟空间 或 retaincount +1,这个不太记得了
------解决方案--------------------
不太记得了。。。

我在XOCODE编译的时候,如果类中有成员变量是 string,一般都不为它开辟空间。。。。
-dealloc{}中,也不会去释放掉它。感觉它会在内存释放池里释放掉。系统自带的帮我autorelease掉了

如果使用临时变量 或者一定把成员变量 【nsstring alloc】,那么就要去release掉

还有,[nsobject COPY]会开辟空间 或 retaincount +1,这个不太记得了