(七)運(yùn)算符重載
除了可以重載函數(shù)之外,c++還允許程序員定義已有的運(yùn)算符,這樣通過運(yùn)算符重載就可象處理數(shù)據(jù)那樣使用它們。
class num{
public:
int get(){return n;}
num(){n=1;}
void operator++(){++n}
private:
int n;
}
int main(){
num i;
cout<<"i:"<<i.get()<<endl;
++i;
cout<<"i:"<<i.get()<<endl;
return 0;
}
通過operator 修飾符來實(shí)現(xiàn) ++i這種前置自加運(yùn)算符。
在例如 1+2; 系統(tǒng)會(huì)自動(dòng)翻譯為 operator+(1+2)
重載限定
C++的運(yùn)算符大部分都可以被重載,但是有一些卻不能被重載,如: . :: * ? # , . :: * 在c++中有特殊的意義,假如重載的話會(huì)引起一些麻煩。#是
預(yù)處理標(biāo)志,而不是運(yùn)算符, ? : 這個(gè)符號(hào)沒有確定性,重載沒有意義。
:: 作用域限定運(yùn)算符
. 成員選擇運(yùn)算符
* 指針運(yùn)算符

浙公網(wǎng)安備 33010602011771號(hào)