operator=也是一樣,我們應(yīng)該先將原變量?jī)?nèi)部的一些內(nèi)存空間釋放掉,然后申請(qǐng)新的來存放=右邊的內(nèi)部成員。
?1
Spreadsheet::Spreadsheet(const?Spreadsheet&?src)
?2

{
?3
int?i,?j;
?4
mWidth?=?src.mWidth;
?5
mHeight?=?src.mHeight;
?6
mCells?=?new?SpreadsheetCell*?[mWidth];
?7
for?(i?=?0;?i?<?mWidth;?i++)?
{
?8
mCells[i]?=?new?SpreadsheetCell[mHeight];
?9
}
10
for?(i?=?0;?i?<?mWidth;?i++)?
{
11
for?(j?=?0;?j?<?mHeight;?j++)?
{
12
mCells[i][j]?=?src.mCells[i][j];
13
}
14
}
15
}

?2



?3

?4

?5

?6

?7



?8

?9

10



11



12

13

14

15





































2.區(qū)分下



和


其實(shí)兩個(gè)的意思是不一樣的,前者調(diào)用的是operator=而后者調(diào)用的是Copy Constructor。
如果你沒有重載operator=,那么兩段代碼都是重載Copy Constructor.
發(fā)現(xiàn)寫寫筆記,還是有助于記憶的。
---------------------------------------------------------
專注移動(dòng)開發(fā)
Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian