看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) c++ 問題(Question): overloading ^ 我有一個物件 A , 我要overloading ^ ,使得 A^3是合法的. 但弄不出來, 我試了以下兩個寫法: 1. A A::operator^(float &x){ A temp; temp.variable = pow(variable , x); return temp; } 2. friend A operator^(const A &t, float &x){ A temp; temp.variable = pow(t.variable, x); return temp; } 這樣呼叫 A^3 都會說"no match for 'operator^' in ..... " 請問是錯在哪? 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.241.250
littleshan:你用 float &x 的用意是? 12/29 23:16
FableKevinS:少一個副本 12/29 23:23
stimim:要怎麼對 const 3 取 reference??? 12/29 23:28
stimim:改成 const float& x 12/29 23:28
stimim: 看看 12/29 23:29
FableKevinS:都不行~"~ 12/29 23:35
purincess:不要用&阿...... 12/30 00:20
blackwindy:A^3.0可以嗎? 12/30 00:26
littleshan:使用 float 或 const float& 都可以 12/30 01:32
littleshan:你如果不行的話肯定是其它地方寫錯 12/30 01:32
littleshan:還有,傳遞基本型別作為參數時,使用 & 並不會比較快 12/30 01:33
FableKevinS:奇怪我另開一個class就可以了~"~,我努力debug看看 12/30 01:49
FableKevinS:找到問題了,重載"<<": cout << a^3 ; 會出問題 12/30 02:05
angleevil:不是很建議重載^,畢竟他原本的功能是位元運算 12/30 23:11