struct absint
};
這個類定義了操作:函式呼叫運算子,它負責接受乙個int型別的實參,然後返回該實參的絕對值。呼叫:
int i=-42;
absint absobj; //含有函式運算子的物件
int ui = absobj(i); //將i傳遞給absobj.operator()
class printstring
void operator()(const string &s) const
private:
ostream &os; //用於寫入的目的劉
char sep; //用於將不同輸出隔開的字元
}
型別轉換運算子
舉個例子,我們定義乙個簡單的類,令其表示0到255之間的乙個整數:
class smallint
operator int() const
private:
std::size_t val;
};
上面的類擁有兩種轉換能力,一是將int型別的值轉換為類型別,這是通過建構函式完成的,二是將int型別轉換為類型別。
smallint si;
si = 4; //首先將4隱式的轉換成smallint,然後呼叫smallint::operator=
si + 3; //首先將si隱式轉換成int,然後執行整數的加法
類型別定義的轉換:類型別能定義由編譯器自動執行轉換,不過編譯器每次只能執行一種型別的轉換。
//內建型別轉換將double實參轉換為int
smallint si = 3.14;
si + 3.14;
上面的轉換中,先執行內建的資料型別轉換,再執行類型別轉化,一共執行了兩次資料型別轉換 函式呼叫運算子
14.34定義乙個函式物件類,令其執行if then else的操作 該型別的呼叫運算子接受三個引數,它首先檢查第乙個形參,如果成功返回第二個引數的值 如果不成功返回第三個形參的值。includeusing namespace std class if then else int main 14.3...
C 函式可呼叫運算子
一 什麼是可呼叫函式 func 這就是乙個可呼叫函式,某類過載了operator 這個類物件也稱為可呼叫函式 可呼叫物件 他們的明顯標誌是帶有圓括號。class a 過載 後可以向呼叫函式一樣呼叫類物件 int operator int var 過載 兩引數版本 int operator int x...
(運算子) 運算子
運算子既可作為一元運算子也可作為二元運算子。備註 unsafe context data guid 00bf87717d88a9fac1afadb796c675da 一元 運算子返回運算元的位址 要求 unsafe 上下文 bool data guid 9efd189df2cfb88799dca08...