[問題] 直接呼叫解構子
需求是這樣的:
1.有一 Class,是專門用來當作儲存的資料結構。
2.當程式運行中,要執行刪除功能時,一旦確定刪除某筆資料,
要保證儲存資料的那個Class其解構子功能要能馬上執行。
----------------------------------------------------
所以我的作法大概是像這樣:
Class * A = new Class[5]; //將 A 指向有五筆CLASS的陣列
→ 假設要刪除的是 A[3] 這筆資料 ←
Class *temp = &A[3] ; //將 temp 指向 第四筆Class
Delete temp ;
如此由Class解構子中的訊息得知,那解構子的確會被執行。
-------------------------------------------------------
在執行時都是正確的數據,但是一旦我多做幾次新增資料、刪除,
就有可能出現當機的情況:程式崩潰不動、顯現亂碼的情況。
是否是這樣的方式不夠洽當嚴謹呢?
想請問是否有比較好的方式,可以直接呼叫特定某筆CLASS的解構子,
最好是可以呼叫位於Class陣列中 的特定一筆。(像是指定陣列中的 A[3] )
感謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.45.36
→
10/19 09:01, , 1F
10/19 09:01, 1F
這是因為需求指定不能用 vector 與 list …
→
10/19 09:02, , 2F
10/19 09:02, 2F
因為我並不想重作整個Class陣列,希望能夠單獨刪除其中的一筆資料就好。
推
10/19 09:11, , 3F
10/19 09:11, 3F
Class中有幾個成員 → int Phone ;
所謂的新增資料,其實就只是把資料填到裡面而已。
EX: A[0].setPhone("0123456789");
通常在 Delete A[n] 後,
我會補上 &A[n] = new Member();
但是不補上似乎也是正常,這邊我就不是很清楚 delete的實作方式了。
※ 編輯: KanoLoa 來自: 122.116.45.36 (10/19 09:19)
→
10/19 09:36, , 4F
10/19 09:36, 4F
→
10/19 09:38, , 5F
10/19 09:38, 5F
→
10/19 09:39, , 6F
10/19 09:39, 6F
→
10/19 09:40, , 7F
10/19 09:40, 7F
→
10/19 09:49, , 8F
10/19 09:49, 8F
推
10/19 09:54, , 9F
10/19 09:54, 9F
→
10/19 09:55, , 10F
10/19 09:55, 10F
→
10/19 09:56, , 11F
10/19 09:56, 11F
→
10/19 09:56, , 12F
10/19 09:56, 12F
→
10/19 09:56, , 13F
10/19 09:56, 13F
→
10/19 09:58, , 14F
10/19 09:58, 14F
→
10/19 10:00, , 15F
10/19 10:00, 15F
→
10/19 10:00, , 16F
10/19 10:00, 16F
→
10/19 10:05, , 17F
10/19 10:05, 17F
推
10/19 10:09, , 18F
10/19 10:09, 18F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章