[問題] 重載運算子
各位大大好~~
小的目前在練習寫重載運算子
寫出了下面這些東西
class bint
{
Public:
bint(){data = new int[10]};
~bint(){delete [] data;}
bint operator~(){
bint re;
for(int i=0;i<n;i++){
re.data[i] = ~data[i];
}
return re;
}
Private:
int n,*data;
}
因此我可以用 bint a; 來宣告,然後 ~a 來取得 a 的補數
可是問題來了…
在 operator~() 函式中,宣告了一個 re
那個 re 應該是區域變數吧
在離開函式時,會因為解構所以 delete 掉空間
把他 return 回去會不會造成 *data 指向被 delete 的空間?
造成 undefined behaviour ...
請問我要怎麼做??
謝謝
--
光明 的背後 是 黑暗
黑暗 的背後 還是 黑暗
由此可知 黑暗 > 光明 Q.E.D.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 124.8.135.59
※ 編輯: darkgerm 來自: 124.8.135.59 (01/18 16:55)
※ 編輯: darkgerm 來自: 124.8.135.59 (01/18 17:21)
→
01/18 17:01, , 1F
01/18 17:01, 1F
→
01/18 17:22, , 2F
01/18 17:22, 2F
→
01/18 17:23, , 3F
01/18 17:23, 3F
→
01/18 17:26, , 4F
01/18 17:26, 4F
→
01/18 17:26, , 5F
01/18 17:26, 5F
→
01/18 17:28, , 6F
01/18 17:28, 6F
推
01/18 17:31, , 7F
01/18 17:31, 7F
→
01/18 18:17, , 8F
01/18 18:17, 8F
→
01/18 18:19, , 9F
01/18 18:19, 9F
→
01/18 18:59, , 10F
01/18 18:59, 10F
→
01/18 19:00, , 11F
01/18 19:00, 11F
→
01/18 19:00, , 12F
01/18 19:00, 12F
推
01/18 19:43, , 13F
01/18 19:43, 13F
→
01/18 19:46, , 14F
01/18 19:46, 14F
→
01/18 22:42, , 15F
01/18 22:42, 15F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章