作者Carbontube (碳管)
看板C_and_CPP
標題Re: [問題] operator overloading c++
時間Thu May 14 20:21:45 2009
看書說,C++不能定義新的operator。
好比想把 pow(a,n) 寫成 a**n 是不可行的
那請問板上大牛是如何實現的呢
或是通常會怎處理呢,謝謝
※ 引述《Fenikso (ばかちーは俺の嫁)》之銘言:
: 又到了寫低能code的時間~
: 以下VS2008限定, 2005或更早的可能不行
: gcc的-fextended-identifiers還是個半成品(敲碗)
: #define ! + 階乘()
: /* 這是全形的"!" 不是"!" */
: struct 階乘{};
: int operator+(int x, const 階乘& y) {
: int j = 1;
: for(int i=1; i<=x; i++) j *= i;
: return j;
: }
: int main() {
: cout << 5! << endl;
: int a = 6;
: cout << a ! << endl; // a和!中間要有空格 不然會被當成一個identifier
: return 0;
: }
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.112.80.230
推 sunneo:乾脆寫個preprocessor讓自訂operator合理化 05/14 22:13
推 ianfang:實做不是問題 問題在可讀性 05/14 22:45