[問題] "不是所有控制路徑都傳回值"

看板C_and_CPP作者 (MC)時間12年前 (2011/10/03 22:13), 編輯推噓0(0014)
留言14則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++2008 問題(Question): 1>c:\users\cat\desktop\dip\hw1\hw1\happy.cpp(140) : warning C4715: 'bmp::operator()' : 不是所有控制路徑都傳回值 在scale裡 出問題了 不懂 為什麼我那樣存取會出錯 我自己照著程式run一遍 感覺都沒甚麼錯QQ 程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/omtx35RF -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.165.40

10/03 22:15, , 1F
最後加個 else return ????; 應該就可以了
10/03 22:15, 1F

10/03 22:15, , 2F
if...else if...else if... 不一定包含所有情況
10/03 22:15, 2F

10/03 22:18, , 3F
還是在run time 的時候出錯了 錯在166行
10/03 22:18, 3F

10/03 22:21, , 4F
* this->operator ()(i,j,k)=(unsigned char)sum;
10/03 22:21, 4F

10/03 22:21, , 5F
說真的我看不懂這行在做什麼...
10/03 22:21, 5F

10/03 22:37, , 6F
我是要做放大縮小 sum是計算過後的值
10/03 22:37, 6F

10/03 22:38, , 7F
然後我要把影像的(i,j,k)所指的位置 修改成那個值
10/03 22:38, 7F

10/03 22:38, , 8F
如果我把這些分開compile就會過 不過全部用到一個檔就fail
10/03 22:38, 8F

10/03 22:57, , 9F
因為compiler檢查東西只有function scope
10/03 22:57, 9F

10/03 22:58, , 10F
operator的control path如果if沒有match到的話就會沒return東
10/03 22:58, 10F

10/03 22:58, , 11F
z不是1或2或3只有你自己知道,程式不曉得怎麼編
10/03 22:58, 11F

10/03 22:59, , 12F
更正上句,z只會是1或2或3只有你知道
10/03 22:59, 12F

10/03 23:02, , 13F
但是也許這樣寫是真的沒問題,所以他只是warning而不是error
10/03 23:02, 13F

10/03 23:02, , 14F
可是萬一真的寫錯的話程式的結果就不可預期
10/03 23:02, 14F
文章代碼(AID): #1EYSCLDP (C_and_CPP)