Re: [問題] operator overloading c++

看板C_and_CPP (C/C++)作者 (碳管)時間16年前 (2009/05/14 20:21), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串4/5 (看更多)
看書說,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

05/14 22:13, , 1F
乾脆寫個preprocessor讓自訂operator合理化
05/14 22:13, 1F

05/14 22:45, , 2F
實做不是問題 問題在可讀性
05/14 22:45, 2F
文章代碼(AID): #1A30pQhh (C_and_CPP)
文章代碼(AID): #1A30pQhh (C_and_CPP)