課程
/后端開發(fā)
/C#
/C#面向?qū)ο缶幊?/a>
如何重載++i;
2017-11-12
源自:C#面向?qū)ο缶幊?nbsp; 4-3
正在回答
1. 參數(shù)
前置()
后置(int)
2. 返回值
前置int&
后置 const int// const是為了防止i++++運(yùn)算的結(jié)果并非預(yù)期。
3. 函數(shù)體
后置調(diào)用前置 ?// 這樣只需要維護(hù)前置運(yùn)算符的代碼即可。
步驟:1. 保留舊值到oldvalue; 2. 增加舊值++(*this);3. 返回保留的舊值return oldValue
4. 優(yōu)先用哪個
因后置會構(gòu)造并析構(gòu)oldValue臨時對象,故比前置效率低。即優(yōu)先用前置++i。
UPInt&?UPInt::operator++()??
{??
???*this?+=?1;??
???return?*this;??
//?或return?++privateVal;??
}??
??
//后置?i++?-----------先調(diào)用原值,再++??
const?UPInt?UPInt::operator++(int)??
???UPInt?oldValue?=?*this;??
???++(*this);??
???return?oldValue;??
} ?
舉報
本系列教程主要是,帶你學(xué)習(xí)C#面向?qū)ο缶幊痰木幊趟枷?、編程技?/p> 進(jìn)入課程
2 回答這和cpp里的重載一樣嗎
2 回答關(guān)于=的重載
2 回答自定義轉(zhuǎn)換和重載運(yùn)算符
2 回答為什么最后一個循環(huán)里是++i ?
1 回答內(nèi)容缺少重載部分
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2017-11-14
1. 參數(shù)
前置()
后置(int)
2. 返回值
前置int&
后置 const int// const是為了防止i++++運(yùn)算的結(jié)果并非預(yù)期。
3. 函數(shù)體
后置調(diào)用前置 ?// 這樣只需要維護(hù)前置運(yùn)算符的代碼即可。
步驟:1. 保留舊值到oldvalue; 2. 增加舊值++(*this);3. 返回保留的舊值return oldValue
4. 優(yōu)先用哪個
因后置會構(gòu)造并析構(gòu)oldValue臨時對象,故比前置效率低。即優(yōu)先用前置++i。
UPInt&?UPInt::operator++()??
{??
???*this?+=?1;??
???return?*this;??
//?或return?++privateVal;??
}??
??
//后置?i++?-----------先調(diào)用原值,再++??
const?UPInt?UPInt::operator++(int)??
{??
???UPInt?oldValue?=?*this;??
???++(*this);??
???return?oldValue;??
} ?