答案:
在內(nèi)建數(shù)據(jù)類型的情況下,效率沒(méi)有區(qū)別;
在自定義數(shù)據(jù)類型的情況下,++i效率更高!
分析:
(自定義數(shù)據(jù)類型的情況下)
++i返回對(duì)象的引用;
i++總是要?jiǎng)?chuàng)建一個(gè)臨時(shí)對(duì)象,在退出函數(shù)時(shí)還要銷毀它,而且返回臨時(shí)對(duì)象的值時(shí)還會(huì)調(diào)用其拷貝構(gòu)造函數(shù)。
(重載這兩個(gè)運(yùn)算符如下)
class MyInterger{
public:
long m_data;
public:
MyInterger(long data):m_data(data){}
MyInterger & operator++(){
cout<<"Integer::operator++() called!"<<endl;
m_data++;
return *this;
}
MyInterger operator++(int){
cout<<"Integer::operator++(int) called!"<<endl;
MyInterger tmp = *this;
m_data++;
return tmp;
}
};
int main()
{
MyInterger a = 1;
a++;
++a;
return 0;
}
新聞熱點(diǎn)
疑難解答
圖片精選