私は目的の C++ に慣れていません。ここに私の質問があります: クラスがあるとします。
class MyTestClass
{
public:
int memLength_;
char *mem;
MyTestClass(int memLength)
{
memLength_ = memLength;
mem = new char[memLength_];
}
~MyTestClass()
{
delete []mem;
}
}
ここでやりたいことは、MyTestClass
Objective C++ を使用してオブジェクトを作成することです。私が行ったことは次のとおりです。
@interface ObjectRetriever : NSObject
+ (MyTestClass)ObtainMyTestClass; // Function 1
+ (MyTestClass*)ObtainMyNextTestClass; //Function 2
@end
+(MyTestClass)ObtainMyTestClass
{
int memLen = 100;
MyTestClass myClass(memLen)
return myClass;
}
+ (MyTestClass*)ObtainMyNextTestClass
{
MyTestClass *myClassPtr;
myClassPtr = new MyTestClass(memLen)
return myClassPtr;
}
を使用してオブジェクトObjectRetriever
を作成するときMyTestClass
は、このようにします
MyTestClass testClassObject1 = [ObjectRetriever ObtainMyTestClass];
MyTestClass *testClassObjectPtr2 = [ObjectRetriever ObtainMyNextTestClass];
私の質問は次のとおりです。
ObtainMyTestClass
とObtainMyNextTestClass
、どちらが良いですか?- このようにクラスを実装して使用すると、メモリ リークの危険がありますか?
ありがとう。