Re: [問題] 問一個物件相加 operator+ 的問題....
※ 引述《aquatear (米蟲)》之銘言:
: 寫了一個重載 + 號 的函式 , 目的是將兩個 CWin 物件相加,
: 此物件是一個視窗, 相加結果是取視窗最大的寬高當作新視窗的寬高,
: 然後把新視窗的 title 設為 "new win"
: CWin operator+(CWin &w)
: {
: int width,height;
: width = this->width > w.width ? this->width: w.width;
: height = this->height > w.height ? this->height : w.height;
: return CWin(100,width,height,"new win");
: }
老實說, 我還有一個很大的疑問
聽說:
動態配置的記憶體, 必須靠自己 delete , 才會正常呼叫解構
但是我把 operator+ 改成如下
CWin operator+(CWin &w)
{
int width,height;
CWin *pWin;
width = this->width > w.width ? this->width: w.width;
height = this->height > w.height ? this->height : w.height;
pWin = new CWin(100,width,height,"new win");
return *pWin;
}
我動態配置一個新的物件 *pWin
結果在執行完 win1=win2+win3 之後
這個 pWin 會自己呼叫解構把裡面的資料銷毀... 這實在非常奇怪
不知道有人可以解釋嗎 ?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.219.68.170
推
05/15 14:50, , 1F
05/15 14:50, 1F
→
05/15 15:58, , 2F
05/15 15:58, 2F
→
05/15 16:31, , 3F
05/15 16:31, 3F
推
05/15 16:40, , 4F
05/15 16:40, 4F
→
05/15 16:40, , 5F
05/15 16:40, 5F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 4 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章