函式呼叫運算子

2021-09-24 21:49:42 字數 1000 閱讀 6378

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...