[問題] operator=()內為何判斷物件是否等於this
參考網頁http://openhome.cc/Gossip/CppGossip/CopyConstructorAndAssign.html
// 重載=指定運算子
SafeArray& SafeArray::operator=(const SafeArray &safeArray) {
// 這邊始終不懂,看了很多說明還是不知道判斷這行的用意是甚麼
if(this != &safeArray) {
length = safeArray.length;
// 先清除原有的資源
delete [] _array;
_array = new int[safeArray.length];
for(int i = 0; i < safeArray.length; i++) {
_array[i] = safeArray._array[i];
}
}
return *this;
}
有請高手點一下
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 27.52.136.5
推
08/19 23:25, , 1F
08/19 23:25, 1F
推
08/19 23:25, , 2F
08/19 23:25, 2F
→
08/19 23:26, , 3F
08/19 23:26, 3F
推
08/19 23:26, , 4F
08/19 23:26, 4F
→
08/19 23:26, , 5F
08/19 23:26, 5F
→
08/19 23:27, , 6F
08/19 23:27, 6F
→
08/19 23:34, , 7F
08/19 23:34, 7F
→
08/19 23:35, , 8F
08/19 23:35, 8F
→
08/20 00:00, , 9F
08/20 00:00, 9F
推
08/20 00:34, , 10F
08/20 00:34, 10F
→
08/20 00:34, , 11F
08/20 00:34, 11F
→
08/20 01:24, , 12F
08/20 01:24, 12F
→
08/20 01:24, , 13F
08/20 01:24, 13F
推
08/20 03:09, , 14F
08/20 03:09, 14F
→
08/20 03:10, , 15F
08/20 03:10, 15F
雖然他有DELETE 但是他有先NEW一個空間出來才賦值
delete [] _array;
//事先刪掉在配置一個
//一般來說不是會有DEFAULT值嗎
//只是值會很怪而已吧
_array = new int[safeArray.length];
for(int i = 0; i < safeArray.length; i++) {
_array[i] = safeArray._array[i];
}
這樣會有問題嗎 QQ
感謝前輩相助
※ 編輯: kumusou 來自: 39.14.67.162 (08/20 19:52)
→
08/20 19:59, , 16F
08/20 19:59, 16F
→
08/20 20:12, , 17F
08/20 20:12, 17F
推
08/20 23:00, , 18F
08/20 23:00, 18F
→
08/20 23:00, , 19F
08/20 23:00, 19F
推
08/20 23:40, , 20F
08/20 23:40, 20F
→
08/20 23:42, , 21F
08/20 23:42, 21F
→
08/20 23:50, , 22F
08/20 23:50, 22F
→
08/20 23:52, , 23F
08/20 23:52, 23F
→
08/20 23:54, , 24F
08/20 23:54, 24F
→
08/20 23:56, , 25F
08/20 23:56, 25F
→
08/21 00:00, , 26F
08/21 00:00, 26F
→
08/21 00:01, , 27F
08/21 00:01, 27F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章