[問題] overloading ^

看板C_and_CPP作者 (FableKevinS)時間14年前 (2011/12/29 23:15), 編輯推噓2(2012)
留言14則, 6人參與, 最新討論串1/1
開發平台(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

12/29 23:16, , 1F
你用 float &x 的用意是?
12/29 23:16, 1F

12/29 23:23, , 2F
少一個副本
12/29 23:23, 2F

12/29 23:28, , 3F
要怎麼對 const 3 取 reference???
12/29 23:28, 3F

12/29 23:28, , 4F
改成 const float& x
12/29 23:28, 4F

12/29 23:29, , 5F
看看
12/29 23:29, 5F

12/29 23:35, , 6F
都不行~"~
12/29 23:35, 6F

12/30 00:20, , 7F
不要用&阿......
12/30 00:20, 7F

12/30 00:26, , 8F
A^3.0可以嗎?
12/30 00:26, 8F

12/30 01:32, , 9F
使用 float 或 const float& 都可以
12/30 01:32, 9F

12/30 01:32, , 10F
你如果不行的話肯定是其它地方寫錯
12/30 01:32, 10F

12/30 01:33, , 11F
還有,傳遞基本型別作為參數時,使用 & 並不會比較快
12/30 01:33, 11F

12/30 01:49, , 12F
奇怪我另開一個class就可以了~"~,我努力debug看看
12/30 01:49, 12F

12/30 02:05, , 13F
找到問題了,重載"<<": cout << a^3 ; 會出問題
12/30 02:05, 13F

12/30 23:11, , 14F
不是很建議重載^,畢竟他原本的功能是位元運算
12/30 23:11, 14F
文章代碼(AID): #1E_8GC5F (C_and_CPP)