[問題] 可以在沒有new的情況下做delete嗎?
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
我建立了一個類別用以管理陣列,其中只有Create成員會動態配置一記憶體空間,
但我沒有辦法保證使用者一定會呼叫Create成員(比方說註解掉紅色的兩行),在這
個情況下如果解構MyArray就會變成沒有new但是delete了。
請問這樣是合理的嗎?
不然就要另外設一個flag來偵測Create有沒有被new過了。
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
class MyArray
{
public:
~MyArray();
void Create(int);
int Get(int);
void Put( int, int);
private:
int *Array;
};
MyArray::~MyArray()
{
delete [] Array;
return ;
}
void MyArray::Create(int Len)
{
Array = new int[Len];
return ;
}
int main()
{
MyArray NewArray;
NewArray.Create(100);
NewArray.Put(10, 0);
return (0);
}
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.72.212.239
推
01/10 14:48, , 1F
01/10 14:48, 1F
→
01/10 14:48, , 2F
01/10 14:48, 2F
→
01/10 14:49, , 3F
01/10 14:49, 3F
推
01/10 14:55, , 4F
01/10 14:55, 4F
→
01/10 16:40, , 5F
01/10 16:40, 5F
→
01/10 16:42, , 6F
01/10 16:42, 6F
→
01/10 16:52, , 7F
01/10 16:52, 7F